pip
来安装。本节内容适合 Python 开发人员阅读。 成都创新互联公司长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为松岭企业提供专业的成都网站建设、网站制作,松岭网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
下面以 Windows 系统为例,使用包管理工具安装 redis 模块,命令如下:
python -m pip install redis
如果您是 Linux 系统,需要执行以下命令来安装:
sudo pip3 install redis
redis 模块采用了两种连接模式:直接模式和连接池模式,它们都可以操作 Redis。
import redis # 本地连接,创建数据库连接对象 r = redis.Redis(host='127.0.0.1',port=6379,db=0,password='123456')
上述代码中,db 表示当前选择的库,其参数值可以是 0-15;如果设置连接数据库的密码,那么就需要使用 password 进行验证,否则可以省略。
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 数据库的通用命令。
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 删除成功
示例如下:
import redis #连接redis服务器 r = redis.Redis(host='127.0.0.1',port=6379,db=0) #key为database r.set('webname','www.biancheng.net') print(r.get('webname')) #mset参数为字典 r.mset({'username':'jacak','password':'123'}) print(r.mget('username','password')) #查看value长度 print(r.strlen('username')) #数值操作 r.set('age','15') r.incrby('age',5) r.decrby('age',5) r.incr('age') r.decr('age') r.incrbyfloat('age',5.2) r.incrbyfloat('age',-10.5) print(r.get('age')) #删除key r.delete('username')
输出结果如下:
b'www.biancheng.net' [b'jacak', b'123'] 5 b'9.69999999999999929'
注意:输出结果为 bytes 形式,需要使用 decode() 方法进行转换。
示例如下:
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 操作 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.net') # 获取数据 print(r.hget('user1','name')) # 一次性设置多个field和value user_dict = { 'password':'123', 'gender':'M', 'height':'175cm' } r.hmset('user1',user_dict) # 获取所有数据,字典类型 print(r.hgetall('user1')) # 获取所有fields字段和所有values值 print(r.hkeys('user1')) print(r.hvals('user1'))
输出结果:
b'www.biancheng.net' {b'name': b'www.biancheng.net', b'password': b'123', b'gender': b'M', b'height': b'175cm'} [b'name', b'password', b'gender', b'height'] [b'www.biancheng.net', b'123', b'M', b'175cm']
Python 操作 Set 集合常用方法如下:
#1、给name对应的集合中添加元素 sadd(name,values) e.g. r.sadd("set_name","tom") r.sadd("set_name","tom","jim") #2、获取name对应的集合的所有成员 smembers(name) e.g. r.smembers('set_name') #3、获取name对应的集合中的元素个数 scard(name) e.g. r.scard("set_name") #4、检查value是否是name对应的集合内的元素,返回值为True或False sismember(name, value) e.g. r.sismember('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")
分享标题:Python使用Redis
网站地址:http://www.shufengxianlan.com/qtweb/news41/492791.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联