python 蟒蛇操作的Redis

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 蟒蛇操作的Redis相关的知识,希望对你有一定的参考价值。

import redis   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库

# host是redis主机,需要redis服务端和客户端都启动 redis默认端口是6379,db选择redis数据库
r = redis.Redis(host='127.0.0.1', port=6379,decode_responses=True, db=1, password='')
# 这种连接方法连接的Redis与Redis-cli命令相同
r = redis.StrictRedis(host='127.0.0.1', port=6379,decode_responses=True, db=1, password='')
r.set('name', 'ayuliao')  
print(r['name'])
print(r.get('name'))  
print(type(r.get('name')))


r.delete("del1","del2") #删除del1、del2这两个键

# redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销

pool = redis.ConnectionPool(host='127.0.0.1', port=6379, decode_responses=True)   # host是redis主机,需要redis服务端和客户端都起着 redis默认端口是6379
r = redis.Redis(connection_pool=pool)
r.set('gender', 'male')     # key是"gender" value是"male" 将键值对存入redis缓存
print(r.get('gender'))

'''
线上环境不允许使用keys()方法来获得对应的key,因为keys()方法会让服务器发生阻塞,
可以使用Redis中的SCAN命令,SCAN 每次执行都只会返回少量元素,所以可以用于生产环境,
而不会出现像 KEYS 或者 SMEMBERS 命令带来的可能会阻塞服务器的问题。

在python中,SCAN命令对应 scan_iter方法
'''

In [21]: [key for key in redis.scan_iter(match='playerUseCardData:player:*:day:2018-02-24:list',count=1000)]
Out[21]:
[u'playerUseCardData:player:11:day:2018-02-24:list',
 u'playerUseCardData:player:1005:day:2018-02-24:list',
 u'playerUseCardData:player:1:day:2018-02-24:list',
 u'playerUseCardData:player:42:day:2018-02-24:list',
 u'playerUseCardData:player:1006:day:2018-02-24:list',
 u'playerUseCardData:player:21:day:2018-02-24:list',
 u'playerUseCardData:player:11052:day:2018-02-24:list',
 u'playerUseCardData:player:14:day:2018-02-24:list']

以上是关于python 蟒蛇操作的Redis的主要内容,如果未能解决你的问题,请参考以下文章

python 如何在Python中中断长时间运行的操作。 #蟒蛇

python 蟒蛇字符串操作

python 蟒蛇文件操作

python 蟒蛇操作数据库

python 蟒蛇时间操作

python 蟒蛇日期操作