Python 官方文档:入门教程 => 点击学习
在 python中我们使用 Redis库来操作 Redis数据库。Redis数据库的使用命令这里就不介绍了。 需要安装 redis库。检查是否安装redis: pip redis 如果未安装,使
在 python中我们使用 Redis库来操作 Redis数据库。Redis数据库的使用命令这里就不介绍了。
需要安装 redis库。检查是否安装redis:
pip redis
如果未安装,使用 pip命令安装 redis。
pip install redis #安装最新版本
Redis提供两个类 Redis和 StrictRedis用于实现 Redis的命令。
import redisredis_conn = redis.Redis( host='192.168.xxx.xxx', port=16379, passWord='******', db=0, decode_responses=True)print(redis_conn) # RedisionPool>>
注意:
redis 取出的结果默认都是字节(bytes)类型,我们可以设定 decode_responses=True 改成字符串。
redis-py 使用 connection pool 来管理对一个 redis server 的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数 Redis,这样就可以实现多个 Redis 实例共享一个连接池。
import redisredis_pool = redis.ConnectionPool( host='192.168.xxx.xxx', port=16379, password='******', db=0, decode_responses=True)redis_conn = redis.Redis(connection_pool=redis_pool)print(redis_conn)
在 Redis 中设置值,默认,不存在则创建,存在则修改。
redis基本语法:
set(name, value, ex=None, px=None, nx=False, xx=False)
参数:
示例代码如下:
res = redis_conn.set('kk1', 'vv1', ex=30)v1 = redis_conn.get('kk1')print(res) print(v1) res = redis_conn.set('kk2', 'vv字符串', ex=30)v2 = redis_conn.get('kk2')print(v2)
左边增加:lpush(name,values)
右边增加:rpush(name,values)
示例代码如下:
# 表示从左向右操作redis_conn.lpush("list1", 11, 22, 33)print(redis_conn.lrange('list1', 0, -1)) # 取出全部。# 表示从右向左操作redis_conn.rpush("list2", 11, 22, 33, 44)print(redis_conn.llen("list2")) # 列表长度。print(redis_conn.lrange("list2", 0, 3)) # 切片取出值,范围是索引号0-3。
单个增加基本语法:
hset(name, key, value)
参数:
示例代码如下:
redis_conn.hset("hash1", "k1", "v1")redis_conn.hset("hash1", "k2", "v2")print(redis_conn.hkeys("hash1")) # 取hash中所有的keyprint(redis_conn.hget("hash1", "k5")) # 单个取hash的key对应的值。不存在返回Noneprint(redis_conn.hmget("hash1", "k1", "k2")) # 多个取hash的key对应的值
新增:sadd(name,values)
获取元素个数:scard(name)
获取集合中所有的成员:smembers(name)
示例代码如下:
redis_conn.sadd("set1", 33, 44, 55, 66) # 往集合中添加元素print(redis_conn.scard("set1")) # 集合的长度是4print(redis_conn.smembers("set1")) # 获取集合中所有的成员
通过上面示例,其实在Python操作Redis数据库,主要还是要熟悉 Redis数据库的相关命令和语法。更多操作大家举一反三。
这里通过类简单封装一下 Redis数据库的相关操作。
代码如下:
import redis# RedisUtils 操作工具类class RedisUtils: def __init__(self, db=0, decode_responses=True): self.conn = redis.StrictRedis( host='192.168.xxx.xxx', port=16379, password='******', db=db, decode_responses=decode_responses ) ''' list相关操作方法 ''' # 创建或者增加列表数据的操作 rpush, lpush def list_push(self, key, push_var='r', *value): # print(value) if push_var == 'r': self.conn.rpush(key, *value) elif push_var == 'l': self.conn.lpush(key, *value) # 删除列表数据的操作 lpop, rpop, lrem指定删除 count=0 代表删除全部 # count 也代表数量 def list_pop(self, key, count, value, pop_var='r'): if pop_var == 'r': # 从右边删除 self.conn.rpop(key) elif pop_var == 'l': # 从左边删除 self.conn.lpop(key) elif pop_var == 'm': # 指定删除全部元素 self.conn.lrem(key, count, value) elif pop_var == 'c': list2 = self.conn.lrange(key, 0, -1) # 遍历删除全部元素 for value in list2: self.conn.lrem(key, count, value) # 修改所在索引的元素:lset lset key index value def list_set(self, key, index, value): self.conn.lset(key, index, value) # 查看列表元素所在的索引:lrange def list_get(self, key, start_index, end_index): print(self.conn.lrange(key, start_index, end_index))# 测试方法redisUtils = RedisUtils(db=1, decode_responses=True)print(redisUtils.conn)# 从右边插入列表数据redisUtils.list_push('list1', 'r', '张三', '李四', '王五')# 修改指定索引的元素redisUtils.list_set('list1', 2, '赵云')# 查看列表redisUtils.list_get('list1', 0, -1)# 删除全部redisUtils.list_pop('list1', 0, '', 'c')
– 求知若饥,虚心若愚。
来源地址:https://blog.csdn.net/qq_42402854/article/details/129324497
--结束END--
本文标题: Python 操作Redis
本文链接: https://www.lsjlt.com/news/409938.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0