python常用Resid操作

安装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 import redis
 2 
 3 con = redis.StrictRedis(host='10.138.60.109', port=6379, db=0)  # 连接redis
 4 '''redis基本命令 String'''
 5 con.set('name', 'Bob')  # 插入String
 6 print(con.get('name').decode('utf8'))  # 取出String并utf-8转码
 7 '''redis基本命令 hash'''
 8 con.hset('hash1', 'k1', 'v1')  # 往hash1插入一个键值对k1,v1
 9 con.hmset('hash1', {'k2': 'v2', 'k3': 'v3'})  # 往hash1插入多个键值对k2,k3
10 print(con.hgetall('hash1'))  # 取出所有的键值对
11 print(con.hkeys('hash1'))  # 得到所有的key
12 print(con.hvals('hash1'))  # 得到所有的value
13 con.hdel('hash1', 'k3')  # 删除键值对
14 print(con.hgetall('hash1'))
15 '''redis基本命令 list'''
16 con.lpush('list1', 11, 22, 33)  # 从左边新增
17 con.rpush('list1', 44, 55, 66)  # 从右边新增
18 con.lset('list1', 0, 333)  # 指定索引号进行修改
19 print(con.lrange('list1', 0, -1))  # 打印list1[0:-1]
20 '''redis基本命令 set'''
21 con.sadd('set1', 33, 44, 55, 66)  # 往集合添加元素
22 print(con.scard('set1'))  # 打印集合长度
23 print("111111", type(con.smembers('set1')))  # 获取集合中所有的成员
24 print(con.sismember('set1', 33))  # 判断元素是否在集合中
25 '''redis基本命令 有序set'''
26 # con.zadd('zset1', 'm1', 60, 'a2', 70, 'm3', 30)  # 3.0以前版本
27 # con.zadd('zset1', {'m1': 60, 'a2': 70, 'm3': 30})  # 3.0以上3.6以下版本
28 con.zadd('zset1', 10, 'm1', 20, 'a2', m3=30, a4=40)  # 往集合添加元素,score用于排序(3.6+版本)
29 print(con.zcard('zset1'))  # 打印集合长度
30 print(con.zrange('zset1', 0, -1))  # 获取集合中所有的成员
31 print(con.zrank('zset1', 33))  # 返回元素的下标

参考文献:

https://www.jianshu.com/p/2639549bedc8

https://www.cnblogs.com/sanduzxcvbnm/p/10337306.html