python redis的连接及相关操作
1、redis连接、及存取值
import redis r = redis.Redis(host='192.168.2.22',port=6379,db=2,password= 'redis') r.set('name','Delia') # 在redis里面放置对应的key,value v = r.get('name') # 获取key值对应的value值 print(v)
redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。
默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池。
import redis pool = redis.ConnectionPool(host='192.168.2.22', port=6379, db=2, password='redis') r = redis.Redis(connection_pool=pool) r.set('name','Delia') # 在redis里面放置对应的key,value v = r.get('name') # 获取key值对应的value值 print(v)
输出结果里面的b代表的是二进制
2、批量存取值
import redis pool = redis.ConnectionPool(host='192.168.2.22', port=6379, db=2, password='redis') r = redis.Redis(connection_pool=pool) r.mset({'name':'Delia','age':'18'}) # mset(mapping=''),批量设置值 {k1 = '' ,k2 = ''} v = r.mget({'name','age'}) # 批量获取值 print(v) 输出结果: [b'Delia', b'18']
3、存取value的某个范围
import redis pool = redis.ConnectionPool(host='192.168.2.22', port=6379, db=2, password='redis') r = redis.Redis(connection_pool=pool) r.set('name','Delia1234') r.setrange('name',4,'00') #setrange(name,offset,value)修改字符串内容,从指定位置开始替换 v = r.getrange('name',4,5) #getrange(key,start,end)获取子序列 print(v) 输出结果: b'00'
4、在value中追加内容
import redis pool = redis.ConnectionPool(host='192.168.2.22', port=6379, db=2, password='redis') r = redis.Redis(connection_pool=pool) r.set('name','Delia1234') r.append('name','aaa') #append(key,value)在redis name对应的值后面追加内容 v = r.get('name') print(v) 输出结果: b'Delia1234aaa'
5、获取key对应的value值
(1)字符串。 返回 key 的值,如果 key 不存在时,返回 nil。 如果 key 不是字符串类型,那么返回一个错误。
GET key #获取指定 key 的值
(2)哈希(Hash)。 返回给定字段的值。如果给定的字段或 key 不存在时,返回 nil 。
HGET key field #获取存储在哈希表中指定字段的值
(3)列表。 列表的第一个元素。 当列表 key 不存在时,返回 nil 。
LPOP key #移出并获取列表的第一个元素
(4)集合。Redis Smembers 命令返回集合中的所有的成员。 不存在的集合 key 被视为空集合。
SMEMBERS key #返回集合中的所有成员
(5)有序集合。返回值: 指定区间内,带有分数值(可选)的有序集成员的列表。
ZREVRANGE key start stop [WITHSCORES] #返回有序集中指定区间内的成员,通过索引,分数从高到低