您的位置:首页 > 数据库 > Redis

python操作redis

2018-03-03 15:26 253 查看
python操作redis,用redis库。

安装

pip install redis

使用

建立连接池并取出连接

>>> import redis
>>> pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
>>> r = redis.Redis(connection_pool=pool)


这个connection有很多种方法,可以dir(r)大致看一下,介绍些常用的

key 操作
ex,过期时间(秒)
px,过期时间(毫秒)
nx,如果设置为True,则只有name不存在时,当前set操作才执行
xx,如果设置为True,则只有name存在时,当前set操作才执行
>>> r.set('willen_key',1,ex=5)
True
>>> print(r.get('willen_key'))
1
>>> print(r.get('willen_key'))
None


批量操作
>>> r.mset(k1="v1", k2="v2")
True
>>> print(r.mget("k1", "k2"))
[u'v1', u'v2']


设置新值并获取旧值
>>> r.set('willen_key',1)
True
>>> print(r.get('willen_key'))
1
>>> r.getset('willen_key',2)
u'1'
>>> print(r.get('willen_key'))
2


hash

>>> r.hset("hash1", "k1", "v1")
1L
>>> r.hset("hash1", "k2", "v2")
1L
取所有key
>>> print(r.hkeys("hash1"))
[u'k1', u'k2']
单个取hash的key对应的值
>>> print(r.hget("hash1", "k1"))
v1
多个取hash的key对应的值
>>> print(r.hmget("hash1", "k1", "k2"))
[u'v1', u'v2']


list, lpush,rpush,lset,lrem,lpop等等
>>> r.lpush('willen_list',1)
1L
>>> r.rpush('willen_list',2)
2L
>>> r.lpush('willen_list',3)
3L
>>> print(r.lrange("willen_list", 0, -1))
[u'3', u'1', u'2']
>>> r.lset('willen_list',0,5)
True
>>> print(r.lrange("willen_list", 0, -1))
[u'5', u'1', u'2']


set和zset基本相似,只是zset排好了序,这里以zset为例子
>>> r.zadd("willen_zset", n1=11, n2=22, n3=33, n4=44)
4
取长度
>>> print(r.zcard("willen_zset"))
4
取值
>>> print(r.zrange("willen_zset", 0, -1))
[u'n1', u'n2', u'n3', u'n4']
获取有序集合中所有元素和分数,分数倒序
>>> print(r.zrevrange("willen_zset", 0, -1, withscores=True))
[(u'n4', 44.0), (u'n3', 33.0), (u'n2', 22.0), (u'n1', 11.0)]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: