安装
用pip命令来安装操作Redis的库。
pip install redis
操作
import redis
在python中操作Redis数据库是十分简单的,命令与Linux下操作redis数据库的命令几乎一模一样。不熟悉可以看
连接
连接命令有两种第一种是为了兼容旧的版本,推荐使用第二种。连接的时候默认连接的是0号数据库。decode_responses=True可以让数据不以bytes显示。
第一种
redis.Redis()
第二种
redis.StrictRedis()
#redis.StrictRedis(decode_responses=True)
操作示例
redis操作list类型数据。
import redisclass 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 redisimport randomclass 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())