Python使用Redis
pip来安装。本节内容适 Python 开发人员阅读。安装redis模块
下面以 Windows 系统为例,使用包管理工具安装 redis 模块,令如下:
python -m pip install redis
如果您是 Linux 系统,需要执行以下令来安装:
sudo pip3 install redis
Python Redis连接
redis 模块采用了两种连接模式:直接模式和连接池模式,它们都可以操作 Redis。
1) 直连模式
import redis
# 本地连接,创建数据库连接对象
r = redis.Redis(host='127.0.0.1',port=6379,db=0,password='123456')
上述代码中,db 表示当前选择的库,其参数值可以是 0-15;如果设置连接数据库的密码,那么就需要使用 password 进行验证,否则可以省略。
2) 连接池模式
redis 模块使用 connection pool(连接池)来管理 redis server 的所有连接,每个 Redis 实例都会维护一个属于自己的连接池,这样做的目的是为了减少每次连接或断开的性能消耗。下面示例,实现了多个 Redis 实例共享一个连接池,代码如下:
连接池的作用:当有新的客户端请求连接时,只需要去连接池获取一个连接即可,实际上就是把一个连接共享给多个客户端使用,这样就节省了每次连接所耗费的时间。import redis
#创建连接池并连接到redis,并设置连接数量;
conn_pool = redis.ConnectionPool(host='127.0.0.1',port=6379,max_connections=10)
# 个客户端访问
re_pool = redis.Redis(connection_pool=conn_pool)
# 第二个客户端访问
re_pool2 = redis.Redis(connection_pool=conn_pool)
...
Python Redis通用操作
下面是 Python 操作 Redis 数据库的通用令。
import redis
r = redis.Redis(host='127.0.0.1',port=6379,db=0)
print(r.keys('*'))
key_list = r.keys('*')
#转换为字符串
for key in key_list:
print(key.decode())
#查看key类型
print(r.type('webname'))
# 返回值: 0 或者 1
print(r.exists('username'))
# 删除key
r.delete('webname')
if "age" in key_list:
print("删除失败")
else:
print("删除成功")
输出结果:
[b'username', b'webname', b'age', b'password']
username
webname
age
password
b'string'
1
删除成功
Python Redis字符串
示例如下:
import redis
#连接redis服务器
r = redis.Redis(host='127.0.0.1',port=6379,db=0)
#key为database
r.set('webname','www.biancheng网站站点" rel="nofollow" />
b'www.biancheng网站站点" rel="nofollow" />
import redis
#建立redis连接
r = redis.Redis(host='127.0.0.1',port=6379,db=0)
r.lpush('database','sql','mysql','redis')
r.linsert('database','before','mysql',',mongodb')
print(r.llen('database'))
print(r.lrange('database',0,-1))
print(r.rpop('database'))
#保留指定区间内元素,返回True
print(r.ltrim('database',0,1))
while True:
# 如果列表中为空时,则返回None
result = r.brpop('database',1)
if result:
print(result)
else:
break
r.delete('database')
输出结果如下:
4
[b'redis', b',mongodb', b'mysql', b'sql']
b'sql'
True
(b'database', b',mongodb')
(b'database', b'redis')
Python Redis散列
Python 操作 Hash 散列常用方法如下:
# 1、更新一条数据的value,若不存在时,则新建这条数据
hset(key, field, value)
# 2、读取数据的指定字段属性,返回值为字符串类型
hget(key, field)
# 3、批量更新字段属性,参数mapping为字典类型
hmset(key, mapping)
# 4、批量读取数据的字段属性
hmget(key, fields)
# 5、获取这条数据的所有属性字段和对应的值,返回值为字典类型
hgetall(key)
# 6、获取这条数据的所有属性字段,返回值为列表类型
hkeys(key)
# 7、删除这条数据的指定字段
hdel(key, field)
令演示:
import redis
r = redis.Redis(host='127.0.0.1',port=6379,db=0)
# 设置一条数据
r.hset('user1','name','www.baidu.com')
# 更新数据
r.hset('user1','name','www.biancheng网站站点" rel="nofollow" />
b'www.biancheng网站站点" rel="nofollow" />
#1、给name对应的中添加元素
sadd(name,values)
e.g.
r.sadd("set_name","tom")
r.sadd("set_name","tom","jim")
#2、获取name对应的的所有成员
embers(name)
e.g.
r.embers('set_name')
#3、获取name对应的中的元素个数
scard(name)
e.g.
r.scard("set_name")
#4、检查value是否是name对应的内的元素,返回值为True或False
siember(name, value)
e.g.
r.siember('set_name','tom')
#5、随机删除并返回指定的一个元素
spop(name)
e.g.
member = r.spop('set_name')
#6、删除中的某个元素
srem(name, value)
r.srem("set_name", "tom")
#7、获取多个name对应的交集
sinter(keys, *args)
e.g.
r.sadd("set_name","a","b")
r.sadd("set_name1","b","c")
r.sadd("set_name2","b","c","d")
print(r.sinter("set_name","set_name1","set_name2"))
#输出:{b'b'}
#8、获取多个name对应的的并集
sunion(keys, *args)
e.g.
r.sunion("set_name","set_name1","set_name2")
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 风儿(风儿轻轻的吹)
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- 抖音卡(抖音卡顿怎么解决)
- xboxones(xboxone手柄怎么配对主机)
- 兵马俑(兵马俑介绍和历史背景)
- 陈武简历
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 地球日主题(2020年世界地球日主题)
- 冰客(冰客果汁)
- yy魔兽(yy魔兽世界)
- 充值卡代理(充值卡代理加盟)
- 拆奶罩
- 郭妮小说(恶魔的法则郭妮小说)
- 东天目山(东天目山景区)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 大松电饭煲(美的大松电饭煲)
- 服饰加盟(服饰加盟店招商)
- 点对点短信息(点对点短信息费是什么意思)
- 观音普门品(观音普门品念诵全文)
- 河北省大运会(河北省大运会时间)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 钢筋等级符号(钢筋等级符号电脑怎么输入)
- 常州天宁寺(常州天宁寺求什么灵验)
