您的位置:首页 > 数据库 > Redis

Redis in Python: Redis 键(key)相关函数简介

2017-05-27 19:00 429 查看
本文简单介绍了key相关函数操作。

import redis

r = redis.Redis()

为了简单起见,下面出现的代码都省略了上面的两句代码,测试的时候请自行加上。

0.keys

返回给定模式的键名, 模式参数pattern中星号*表示任意字母,问号?表示一个字母。

默认返回所有键:


>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'id', b'axxx', b'age']
>>>


星号参数:

>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'id', b'axxx', b'age']
>>>r.keys(pattern='a*') # 返回所有a开头的键名
[b'addr', b'add', b'ax', b'axxx', b'age']
>>>


问号参数:

>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'id', b'axxx', b'age']
>>>r.keys(pattern='a?') # 返回两个字母的以a开头的键名
[b'ax']
>>>


1.delete

该命令用于在 key 存在时删除 key,删除成功返回1,失败返回0.

>>> r.keys()
[b'test', b'newname', b'addr', b'id', b'age']
>>> r.delete('test')
1
>>> r.delete('foo')
0
>>> r.keys()
[b'newname', b'addr', b'id', b'age']
>>>

2.exists 

测试 key 是否存在,存在返回True, 否则返回False。

>>> r.keys()
[b'newname', b'addr', b'id', b'age']
>>> r.exists('foo')
False
>>> r.exists('id')
True
>>>


3.dump

序列化给定 key ,如果key存在则返回序列化后的值,否则返回None。



>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age', b'score']
>>> r.dump('foo')
>>> r.dump('score')
b'\x00\xc0Z\x07\x00\xe6\x8c\xcdc\xa9,\x8c\xbc'
>>>


4. expire

 设置key过期时间, 单位为秒;设置成功返回True,失败返回False。

>>> import time
>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age', b'score']
>>> r.expire('score', 10)
True
>>> time.sleep(10)
>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age']
>>>


5.expireat

expireat 的作用和 expire 类似,都用于为 key 设置过期时间。 不同在于expireat  命令接受的时间参数是 时间戳或者datetime。

参数为datetime:

>>> import datetime
>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age']
>>> t = datetime.datetime(2017, 5, 27, 20, 21, 0, 0)
>>> r.expireat('age', t)
True
>>> datetime.datetime.now()
datetime.datetime(2017, 5, 27, 20, 22, 13, 854846)
>>> r.keys()
[b'newname', b'addr', b'add', b'id']
>>>

参数为时间戳:

>>> import time
>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age']
>>> t = int(time.time())
>>> t = t + 20
>>> r.expireat('age', t)
True
>>> time.sleep(20)
>>> r.keys()
[b'newname', b'addr', b'add', b'id']
>>>


6.pexpire

设置 key 的过期时间单位为毫秒。

使用参考expire。

7.pexpireat

设置 key 过期时间,参数为毫秒时间戳或者datetime。

参数为datetime:

>>> import datetime
>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age']
>>> t = datetime.datetime(2017, 5, 27, 20, 53, 0, 0)
>>> r.pexpireat('age', t)
1
>>> datetime.datetime.now()
datetime.datetime(2017, 5, 27, 20, 56, 0, 417900)
>>> r.keys()
[b'newname', b'addr', b'add', b'id']
>>>

参数为时间戳:

>>> import time
>>> r.keys()
[b'newname', b'addr', b'add', b'id', b'age']
>>> t = time.time()
>>> t = t + 20 # 20秒后无效
>>> t = int(t * 1000) # 转换为毫秒
>>> r.pexpireat('age', t)
1
>>> time.sleep(20)
>>> r.keys()
[b'newname', b'addr', b'add', b'id']
>>>


8.move

将当前数据库的 key 移动到给定的数据库 db 当中。

9.persist

移除 key 的过期时间,key 将持久保持。

>>> import time
>>> r.keys()
[b'newax', b'newname', b'addr', b'add', b'age', b'axxx']
>>> r.expire('age', 10)
True
>>> r.persist('age')
True
>>> time.sleep(10)
>>> r.keys()
[b'newax', b'newname', b'addr', b'add', b'age', b'axxx']
>>>


10. pttl

以毫秒为单位返回 key 的剩余的过期时间。

>>> r.keys()
[b'newax', b'newname', b'addr', b'add', b'axxx', b'age']
>>> r.expire('age', 100)
True
>>> r.pttl('age')
94170
>>>


11.ttl  

以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。

>>> r.keys()
[b'newax', b'newname', b'addr', b'add', b'axxx', b'age']
>>> r.expire('age', 100)
True
>>> r.ttl('age')
89
>>>


12.randomkey

从当前数据库中随机返回一个 key 。

>>> r.keys()
[b'newax', b'newname', b'addr', b'add', b'axxx', b'age']
>>> r.randomkey()
b'newname'
>>>


13. rename(src, dst)

把键名src修改为dst,如果dst键已经存在了,修改后dst的值会变成src的值,原来的dst的值会丢失。

>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'id', b'axxx', b'age']
>>>r.rename('id', 'newid')
True
>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'newid', b'axxx', b'age']
>>>


14.renamenx(src, dst)

仅当 dst不存在时,将 src 改名为dst,否则不修改。

>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'axxx', b'age']
>>> r.renamenx('ax', 'add') # add键已经存在了,修改失败返回False
False
>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'axxx', b'age']
>>> r.renamenx('ax', 'newax') # newax键不存在,修改成功
True
>>> r.keys()
[b'newax', b'newname', b'addr', b'add', b'axxx', b'age']
>>>


15.type

返回 key 所储存的值的类型。

>>> r.keys()
[b'newname', b'addr', b'add', b'ax', b'id', b'axxx', b'age']
>>>r.type('age')
b'string'
>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Redis键