键操作
键的一些判断和操作方法
方法 | 作用 | 参数说明 | 实例 | 实例说明 | 实例结果 |
---|---|---|---|---|---|
exists(name) | 判断一个键是否存在 | name:键名 | redis.exists('name') | 是否存在name这个键 | True |
delete(name) | 删除一个键 | name:键名 | redis.delete('name') | 删除name这个键 | 1 |
type(name) | 判断键类型 | name:键名 | redis.type('name') | 判断name这个键的类型 | b'string' |
keys(pattern) | 获取所有符合规则的键 | pattern:匹配规则 | redis.keys('n*') | 获取所有以n为开头的键 | [b'name'] |
randomkey() | 获取随机的一个键 | <br/> | randomkey() | 获取随机的一个键 | b'name' |
rename(src, dst) | 对键重命名 | src:原键名 dst:新键名 | redis.rename('name', 'nickname') | 将name重命名为nickname | True |
dbsize() | 获取当前数据库中键的数目 | <br/> | dbsize() | 获取当前数据库中键的数目 | 100 |
expire(name, time) | 设定键的过期时间, 单位为秒 | name:键名 time:秒数 | redis.expire('name', 2) | 将name键的过期时间设置为2秒 | True |
ttl(name) | 获取键的过期时间, 单位为秒 | name:键名 | redis.ttl('name') | 获取name这个键的过期时间 | 1(1表示永不过期) |
move(name, db) | 将键移动到其他数据库 | name:键名 db:其他数据库 | move('name', 2) | 将name键移动到2号数据库 | True |
flushdb() | 删除当前所选数据库中的所有键 | <br/> | flushdb() | 删除当前所选数据库中的所有键 | True |
flushall() | 删除所有数据库中的所有键 | <br/> | flushall() | 删除所有数据库中的所有键 | True |
- 字符串操作
键值对存储的相关方法
方法 | 作用 | 参数说明 | 实例 | 实例说明 | 实例结果 |
---|---|---|---|---|---|
set(name, value) | 将数据库中指定键名对应的键值赋值为字符串value | name: 键名value: 值 | redis.set('name','Bob') | 将name这个键对应的键值赋值为Bob | True |
get(name) | 返回数据库中指定键名对应的键值 | name:键名 | redis.get('name') | 返回name这个键对应的键值 | b'Bob' |
getset(name,value) | 将数据库中指定键名对应的键值赋值为字符串value,并返回上次的value | name:键名value:新值 | redis.getset('name', 'Mike') | 将name这个键对应的键值赋值为Mike,并返回上次的value | b'Bob' |
mget(keys, *args) | 返回由多个键名对应的value组成的列表 | keys: 键名序列 | redis.mget(['name', 'nickname']) | 返回name和nickname对应的value | [b'Mike', b'Miker'] |
setnx(name, value) | 如果不存在指定的键值对,则更新value,否则保持不更新 | name:键名 | redis.setnx('newname', 'James') | 如果不存在newname这个键名,则设置相应键值对,对应键值为James | 第一次运行结果True,第二次运行结果False |
setex(name, time, value) | 设置键名对应的键值为字符串类型的value,并指定此键值的有效期 | name:键名time:有效期value:值 | redis.setex('name', 1, 'James') | 将name这个键的值设置为James,有效期设置为1秒 | True |
setrange(name, offset, value) | 设置指定键名对应的键值的子字符串 | name:键名offset:偏移量value:子字符串 | redis.set('name', 'Hello')redis.setrange('name', 6, 'World') | 将name这个键对应的键值赋值为Hello,并在该键值中index为6的位置补充World | 11, 修改后的字符串长度 |
mset(mapping) | 批量赋值 | mapping: 字典或关键字参数 | redis.mset({'name1': 'Durant', 'name2': 'James'}) | 将name1赋值为Durent,name2赋值为James | True |
msetnx(mapping) | 指定键名均不存在时,才批量赋值 | mapping: 字典或关键字参数 | redis.mset({'name3': 'Smith', 'name4': 'Curry'}) | 在name3和name4均不存在的情况下,才为二者赋值 | True |
incr(name, amount=1) | 对指定键名对应的键值做增值操作,默认增1。如果指定键名不存在,则创建一个,并将键值设置为amount | name: 键名amount: 增加的值 | redis.incr('age', 1) | 将age对应的键值增加1。 如果不存在age这个键名, 则创建一个,并设置键值为1 | 1, 即修改后的值 |
decr(name, amount=1) | 对指定键名对应的键值做减值操作,默认减1。如果指定键名不存在,则创建一个,并将键值设置为amount | name: 键名amount: 减少的值 | redis.decr('age', 1) | 将age对应的键值减1。 如果不存在age这个键名, 则创建一个,并设置键值为1 | 1, 即修改后的值 |
append(key, value) | 对指定键名对应的键值附加字符串value | key:键名 | redis.append('nickname', 'OK') | 在键名nickname对应的键值后面追加字符串OK | 13, 即修改后的字符串长度 |
substr(name, start, end=-1) | 返回指定键名对应的键值的子字符串 | name:键名start:起始索引end:终止索引,默认为1表示截取到末尾 | redis。substr('name', 1, 4) | 返回键名name对应的键值的子字符串,截取键值字符串中索引为1~4的字符 | b'ello' |
getrange(key, start, end) | 获取指定键名对应的键值中从start到end位置的子字符串 | key:键名start:起始索引end终止索引 | redis.getrange('name', 1, 4) | 返回键名name对应的键值的子字符串,截取键值字符串中索引为1~4的字符 | b'ello' |