安装
用pip命令来安装操作Redis的库。
pip install redis
操作
import redis
在python中操作Redis数据库是十分简单的,命令与Linux下操作redis数据库的命令几乎一模一样。不熟悉可以看redis基本命令。
连接
连接命令有两种第一种是为了兼容旧的版本,推荐使用第二种。连接的时候默认连接的是0号数据库。decode_responses=True可以让数据不以bytes显示。
第一种
redis.Redis()
第二种
redis.StrictRedis()
#redis.StrictRedis(decode_responses=True)
操作示例
redis操作list类型数据。
import redis
class RedisList:
def __init__(self,key,host='localhost',port=6379):
self.db=redis.StrictRedis(host=host,port=port,decode_responses=True)
self.key=key
def name(self):
return self.key
def rpush(self,*args):
self.db.rpush(self.name(),*args)
def lpush(self,*args):
self.db.lpush(self.name(),*args)
def lrange(self,start,stop):
print( self.db.lrange(self.name(),start,stop))
def lindex(self,index):
print(self.db.lindex(self.name(),index))
def lset(self,index,value):
self.db.lset(self.name(),index,value)
def rpop(self):
self.db.rpop(self.name())
def lpop(self):
self.db.lpop(self.name())
if __name__=='__main__':
li1=RedisList('list')
li1.rpush(111,222,333)
li1.lpush(999,888)
li1.lrange(1,3)
li1.lindex(2)
li1.lset(2,777)
li1.lindex(2)
li1.rpop()
li1.lpop()
python操作hash数据类型
import redis
import random
class RedisClient(object):
def __init__(self, key, host='localhost', port=6379):
"""
初始化Redis连接
:param host: 地址
:param port: 端口
"""
self._db = redis.StrictRedis(host=host, port=port, decode_responses=True)
self.key = key
def name(self):
"""
获取Hash的名称
:return: Hash名称
"""
return self.key
def hmset(self, dic):
self._db.hmset(self.name(), dic)
def set(self, field, value):
"""
设置键值对
:param field: 键
:param value: 值
:return:
"""
return self._db.hset(self.name(), field, value)
def delete(self, *field):
"""
根据键名删除键值对
:return: 删除结果
"""
return self._db.hdel(self.name(), *field)
def count(self):
"""
获取数目
:return: 数目
"""
return self._db.hlen(self.name())
def random(self):
"""
随机得到键值
:return: 随机键值
"""
# print(self._db.hvals(self.key))
return random.choice(self._db.hvals(self.name()))
def get_field(self):
"""
获取所有账户信息
:return: 所有用户名
"""
return self._db.hkeys(self.name())
def get_values(self, *field):
"""
根据键名获取键值
:param username: 键
:return:对应键的键值
"""
result = self._db.hmget(self.name(), *field)
return result[0] if len(result) == 1 else result
def get_all(self):
"""
获取所有键值对
:return: 所有键值对
"""
return self._db.hgetall(self.name())
if __name__ == '__main__':
conn = RedisClient('table')
result = conn.hmset({'a': 1, 'b': 2, 'c': 3})
print(result)
print(conn.get_field())