Python操作Redis

作者: localhost 分类: 中间件 发布时间: 2018-03-14 11:28

1.简介

  Redis的Python驱动提供了两个操作类Redis和StrictRedis。Redis是StrictRedis的子类,StrictRedis提供官方的使用方法,并对旧版本的python驱动兼容。官方主要推荐使用StrictRedis

2.创建redis“连接”和“连接池”

redis方式创建连接池
import redis
pool = redis.ConnectionPool(host="localhost", port=6379, db=0)
r = redis.Redis(connection_pool=pool)
StrictRedis方式创建连接池
import redis
pool = redis.ConnectionPool(host='localhost', port=6379, db=0)
r = redis.StrictRedis(connection_pool=pool)   

3.Redis常用数据结构和常用操作

集合 (SET)
# sadd: 向集合添加一个或多个成员
r.sadd('test_set', 'data') 

# scard: 判断一个set长度为多少 不存在为0
r.scard('test_set')  

# sismember 判断集合中是否存在某个对象
r.sismember('test_set', 'data')  

# sinter 求两个集合交集
r.sadd('test_set1', 'data')
r.sinter('test_set', 'test_set1')  
列表(LIST)
# lpush: 将一个或者多个值插入到列表头部
r.lpush("test_list", 'test_data')

# lpushx: 将一个值插入到已存在列表的头部
r.lpushx("test_list", "test_data1")

# lpop: 从指定列表弹出一个元素
r.pop("test_list")

# llen: 获取指定列表的长度
r.llen("test_list")

# llindex: 通过索引获取列表元素
r.llindex("test_list", 0)

# lrange: 获取指定列表范围内的元素
r.lrange("test_list", 0, 5)

# lrem: 根据count参数值移除列表中值等于value的元素
# lrem(list, count, value)
# count > 0:从表头开始搜索
# count < 0:从表尾开始搜索
# count = 0: 移除列表中所有与value相等的元素
r.lrem("test_list", -1, 'test_data')
r.lrem("test_list", 0, 'test_data')

# lset: 通过索引设置元素值
# lset(list, index, value)
r.lset('test_list', 0, 'new_data')  
hash表(HASH)
# hset 将哈希表中的字段key的值设置为value
r.hset('test_hash', key, value)  

# hmset 将多个键值对插入到哈希表
r.mset("test_hash", {"name": "zhangsan", "sex": 'female', "age": 19})

# hget 获取哈希表指定键的值
# hget(hash_name, key)
r.hget("test_hash", 'name')

# hmget 获取哈希表中一个或多个给定字段的值
r.hmget("test_hash", ["name", "sex"])

# hgetall 获取哈希表的所有键值对
r.getall("test_hash")

# hkeys 获取哈希表中的所有键
r.hkeys("test_hash")

# hvals 获取哈希表中所有值
r.hvals("test_hash")

# hexists 检查哈希表中某个键值是否存在
# hexists(hash_name, key)
r.hexists("test_hash", "sex")
其他常用的还有 字符串,有序列表等,详细参看以下链接:
http://www.runoob.com/redis/redis-strings.html
redis安装和使用攻略
https://segmentfault.com/a/1190000002685224
http://debugo.com/python-redis/

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注