安装redis库
pip intall redis
导入库
import redis
连接redis,指定ip,端口,库号
con = redis.StrictRedis(host='ip', port=6379, password=password, db=0)
操作String类型
con.set('name', 'Bob')
获取数据,把byte转utf-8
name = con.get('name').decode('utf8')
操作hash类型
可以一次加一个键值对
con.hset('hash1', 'k1', 'v1')
也可以一次加多个键值对
con.hmset('hash1', {'k2': 'v2', 'k3': 'v3'})
取出所有键值对
print(con.hgetall('hash1'))
取出所有的keys
print(con.hkeys('hash1'))
取出所有的value
print(con.hvals('hash1'))
删除键值对
con.hdel('hash1', 'k3')
操作list类型
新增list(往list左边插入元素)
con.lpush('list1', 11, 22, 33)
往list右边插入元素
con.rpush('list1', 44, 55, 66)
指定索引号进行修改
con.lset('list1', 0, 333)
打印list
print(con.lrange('list1', 0, -1))
操作set类型
往集合添加元素
con.sadd('set1', 33, 44, 55, 66)
打印集合长度
print(con.scard('set1'))
获取集合中所有的成员
print(con.smembers('set1'))
判断元素是否在集合中
print(con.sismember('set1', 33))
操作有序set
在redis-py 3.0之前,添加一个有序集合的值,代码:
con.zadd('zset1', 'm1', 60, 'a2', 70, 'm3', 30)
在redis-py 3.0及以后3.6以前的版本,正确的写法为:
con.zadd('zset1', {'m1': 60, 'a2': 70, 'm3': 30})
在redis-py 3.6及以后的版本,正确的写法为:
con.zadd('zset1', 10, 'm1', 20, 'a2', m3=30, a4=40)
mapping中m1表示元素,60为score用于排序
打印集合长度
print(con.zcard('zset1'))
获取集合中所有的成员
print(con.zrange('zset1', 0, -1))
查看元素的下标,没有则返回None
print(con.zrank('zset1', 33))
完整脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import redis con = redis.StrictRedis(host = '10.138.60.109' , port = 6379 , db = 0 ) # 连接redis '''redis基本命令 String''' con. set ( 'name' , 'Bob' ) # 插入String print (con.get( 'name' ).decode( 'utf8' )) # 取出String并utf-8转码 '''redis基本命令 hash''' con.hset( 'hash1' , 'k1' , 'v1' ) # 往hash1插入一个键值对k1,v1 con.hmset( 'hash1' , { 'k2' : 'v2' , 'k3' : 'v3' }) # 往hash1插入多个键值对k2,k3 print (con.hgetall( 'hash1' )) # 取出所有的键值对 print (con.hkeys( 'hash1' )) # 得到所有的key print (con.hvals( 'hash1' )) # 得到所有的value con.hdel( 'hash1' , 'k3' ) # 删除键值对 print (con.hgetall( 'hash1' )) '''redis基本命令 list''' con.lpush( 'list1' , 11 , 22 , 33 ) # 从左边新增 con.rpush( 'list1' , 44 , 55 , 66 ) # 从右边新增 con.lset( 'list1' , 0 , 333 ) # 指定索引号进行修改 print (con.lrange( 'list1' , 0 , - 1 )) # 打印list1[0:-1] '''redis基本命令 set''' con.sadd( 'set1' , 33 , 44 , 55 , 66 ) # 往集合添加元素 print (con.scard( 'set1' )) # 打印集合长度 print ( "111111" , type (con.smembers( 'set1' ))) # 获取集合中所有的成员 print (con.sismember( 'set1' , 33 )) # 判断元素是否在集合中 '''redis基本命令 有序set''' # con.zadd('zset1', 'm1', 60, 'a2', 70, 'm3', 30) # 3.0以前版本 # con.zadd('zset1', {'m1': 60, 'a2': 70, 'm3': 30}) # 3.0以上3.6以下版本 con.zadd( 'zset1' , 10 , 'm1' , 20 , 'a2' , m3 = 30 , a4 = 40 ) # 往集合添加元素,score用于排序(3.6+版本) print (con.zcard( 'zset1' )) # 打印集合长度 print (con.zrange( 'zset1' , 0 , - 1 )) # 获取集合中所有的成员 print (con.zrank( 'zset1' , 33 )) # 返回元素的下标 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!