redis常用对象
redis模块中共提供了StrictRedis和Redis类来实现Redis命令,其中,StrictRedis类中实现了大多数官方Redis命令;Redis是StrictRedis的子类,用于兼容旧版本的redis-py。官方推荐使用StrictRedis对象进行开发。
StrictRedis对象用于建立与Redis数据库的连接,它可以通过如下构造方法进行创建:
StrictRedis(host='localhost', port=6379, db=0, password=None,
socket_timeout=None, socket_connect_timeout=None,
socket_keepalive=None, socket_keepalive_options=None,
connection_pool=None, unix_socket_path=None, encoding='utf-8',...)
以上方法中常用参数的含义如下:
host,表示待连接的Redis数据库所在主机的IP地址,默认设为localhost。
port,表示Redis数据库程序的端口,默认为6379。
db,表示数据库索引,默认为0,数据库的名称为db0。
encoding,表示采用的编码格式,默认使用的是utf-8。
Redis数据库中的数据都是键值对,其中键为字符串类型,不能重复;值可以为字符串(string)、哈希(hash)、列表(list)、集合(set)和有序集合(zset)这五种类型,针对每种类型官方均提供了相应的命令。
StrictRedis对象中提供了与Redis数据库操作命令同名的方法,这些方法的说明如下所示。
- 字符串类型的方法
方法 | 说明 |
---|---|
set(name, value) | 设置指定键name的值为value。若键不存在,新建一个键值对;若键存在,则修改其对应的值。若该方法返回True,则表示创建或修改成功,否则表示创建或修改失败 |
setex(name, time, value) | 设置指定键name对应的值为value,并将键的过期时间设为time |
mset(mapping) | 根据同时设置多个键值对 |
append(key, value) | 如果key存在,那么将value追加到原有值的末尾;如果key不存在,那么创建一个键值对 |
get(name) | 获取给定键所对应的值。若获取失败,则返回None |
mget(keys, *args) | 获取与键顺序相同的值列表 |
- 哈希类型的方法
方法 | 说明 |
---|---|
hset(name, key, value) | 将哈希表name中键key的值设为value。若创建了一个新键值对,则返回1,否则返回0 |
hmset(name, mapping) | 同时将多个键值对添加到哈希表name中 |
hkeys(name) | 获取哈希表name中所有的键 |
hget(name, key) | 获取存储在哈希表name中指定键的值 |
hmget(name, keys, *args) | 获取哈希表name中所有给定键keys对应的值 |
hvals(name) | 获取哈希表name中所有的值 |
hdel(name, *keys) | 删除一个或多个哈希表中的键 |
- 列表类型的方法
方法 | 说明 |
---|---|
lpush(name, *values) | 将一个或多个值插入到列表头 |
rpush(name, *values) | 向列表中添加一个或多个值 |
linsert(name, where, refvalue, value) | 在列表元素之前或者之后插入值 |
lrange(name, start, end) | 获取列表指定范围内的值 |
lset(name, index, value) | 通过索引设置列表元素的值 |
lrem(self, name, count, value) | 移除列表元素 |
- 集合类型的方法
方法 | 说明 |
---|---|
sadd(name, *values) | 向集合添加一个或多个元素 |
smembers(name) | 返回集合中的所有成员 |
srem(name, *values) | 移除集合中一个或多个成员 |
- 有序集合类型的方法
方法 | 说明 |
---|---|
zadd(name, mapping, nx=False, xx=False, ch=False, incr=False) | 向有序集合添加一个或多个成员,或者更新已存在成员的分数 |
zrange(name, start, end, desc=False, withscores=False, score_cast_func=float) | 通过索引区间返回有序集合指定区间内的成员 |
zrangebyscore(name, min, max, start=None, num=None, withscores=False, score_cast_func=float) | 通过分数返回有序集合指定区间内的成员 |
zscore(name, value) | 返回有序集合成员的分数值 |
zrem(name, *values) | 移除有序集合中的一个或多个成员 |
zremrangebyscore(name, min, max) | 移除有序集合中给定的分数区间的所有成员 |