Redis教程7-键(key)常用命令使用参考2

网友投稿 865 2022-10-17

Redis教程7-键(key)常用命令使用参考2

Redis教程7-键(key)常用命令使用参考2

1.MOVE

MOVE key db

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

如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE

因此,也可以利用这一特性,将 MOVE

可用版本:>= 1.0.0

时间复杂度:O(1)

返回值:移动成功返回 1 ,失败则返回 0

127.0.0.1:6379> keys name // 默认db 0数据库(empty list or set)127.0.0.1:6379> set name redis666 // 设置nameOK127.0.0.1:6379> get name"redis666"127.0.0.1:6379> select 1 // 切换到db 1OK127.0.0.1:6379[1]> get name // db 1中没有name(nil)127.0.0.1:6379[1]> select 0 // 切换回db 0OK127.0.0.1:6379> move name 1 // move name -> db 1(integer) 1127.0.0.1:6379> exists name // db 0中name已经没了(integer) 0127.0.0.1:6379> select 1OK127.0.0.1:6379[1]> get name // db 1中有了刚才的name"redis666"127.0.0.1:6379[1]>

从db 1 move一个不存在的key到db 0

127.0.0.1:6379[1]> keys * // db 1中只有name1) "name"127.0.0.1:6379[1]> move age 0 // move age 到 db 0, 返回0, 不成功(integer) 0

当db 1 和 db 0 都有相同key的时候

127.0.0.1:6379[1]> keys * // db 1中有name1) "name"127.0.0.1:6379[1]> select 0 // 切换到 db 0OK127.0.0.1:6379> get name // db 0 中没有name(nil)127.0.0.1:6379> set name redis888 // set 一个 nameOK127.0.0.1:6379> move name 1 // 从db 0 move 到 db 1, 不成功, 因为db0 和 db 1 都有name(integer) 0

2.PERSIST

PERSIST key

移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key

可用版本:>= 2.2.0

时间复杂度:O(1)

返回值:

当生存时间移除成功时,返回 1

如果 key 不存在或 key 没有设置生存时间,返回 0

127.0.0.1:6379> get name"redis888"127.0.0.1:6379> expire name 5000 // 设置name过期时间5000s(integer) 1127.0.0.1:6379> ttl name // 剩余过期时间4997s(integer) 4997127.0.0.1:6379> persist name // 移除过期时间的限制(integer) 1127.0.0.1:6379> ttl name // 剩余过期时间已经没了(integer) -1127.0.0.1:6379> persist name // 移除一个没有过期时间的, 返回0(integer) 0127.0.0.1:6379> persist age // 移除一个不存在的key, 返回0(integer) 0127.0.0.1:6379>

3.PEXPIRE

PEXPIRE key milliseconds

这个命令和 EXPIRE 命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像 EXPIRE

可用版本:>= 2.6.0

时间复杂度:O(1)

返回值:

设置成功,返回 1

key 不存在或设置失败,返回 0

127.0.0.1:6379> pexpire name 20000 // 设置name的过期时间20s(integer) 1127.0.0.1:6379> ttl name // ttl查看剩余过期时间, 查看的是s(integer) 18127.0.0.1:6379>pttl查看剩余过期时间, 查看的是ms12623127.0.0.1:6379> ttl name(integer) 6127.0.0.1:6379> ttl name // 已经过期了(integer) -2127.0.0.1:6379> get name // name不存在了(nil)127.0.0.1:6379> keys name // name不存在(empty list or set)127.0.0.1:6379>

4.PEXPIREAT

PEXPIREAT key milliseconds-timestamp

这个命令和 EXPIRE, PEXPIRE 命令类似,但它以毫秒为单位设置 key 的过期 unix 时间戳,而不是像 EXPIRE

可用版本:>= 2.6.0

时间复杂度:O(1)

返回值:

如果生存时间设置成功,返回 1

当 key 不存在或没办法设置生存时间时,返回 0 。(查看 上面 EXPIRE

127.0.0.1:6379> set name redis666OK127.0.0.1:6379> pexpireat name 1600481820000 //1600481820000,(integer) 1127.0.0.1:6379> ttl name // 剩余过期时间30s(integer) 30127.0.0.1:6379> pttl name // 剩余过期时间 ms(integer) 27723127.0.0.1:6379> ttl name(integer) 9127.0.0.1:6379> ttl name // 已过期(integer) -2127.0.0.1:6379> exists name // name不存在了(integer) 0127.0.0.1:6379>

5.PTTL

PTTL key

这个命令类似于 TTL 命令,但它以毫秒为单位返回 key 的剩余生存时间,而不是像 TTL

可用版本:>= 2.6.0

复杂度:O(1)

返回值:

当 key 不存在时,返回 -2

当 key 存在但没有设置剩余生存时间时,返回 -1

否则,以毫秒为单位,返回 key

在 Redis 2.8 以前,当 key 不存在,或者 key 没有设置剩余生存时间时,命令都返回 -1

127.0.0.1:6379> set name redis666OK127.0.0.1:6379> pttl name // key存在但是没有设置过期时间(integer) -1127.0.0.1:6379> pttl age // key不存在(integer) -2127.0.0.1:6379> pexpire name 10000(integer) 1127.0.0.1:6379> pttl name // 返回剩余过期时间ms(integer) 7084127.0.0.1:6379> ttl name // ttl返回剩余过期时间s(integer) 5127.0.0.1:6379>

6.RANDOMKEY

RANDOMKEY

从当前数据库中随机返回(不删除)一个 key

可用版本:>= 1.0.0

时间复杂度:O(1)返回值:

当数据库不为空时,返回一个 key 。

当数据库为空时,返回 nil 。

127.0.0.1:6379> keys * // 空的db(empty list or set)127.0.0.1:6379> randomkey // 返回nil(nil)127.0.0.1:6379> set name redis666 // set 三个值OK127.0.0.1:6379> set age 66OK127.0.0.1:6379> set tel 111111OK127.0.0.1:6379> randomkey // 随机返回"tel"127.0.0.1:6379> randomkey"age"127.0.0.1:6379> randomkey"tel"127.0.0.1:6379> randomkey"age"127.0.0.1:6379> randomkey"tel"127.0.0.1:6379> randomkey"tel"127.0.0.1:6379> randomkey"age"127.0.0.1:6379> randomkey"age"127.0.0.1:6379> randomkey"tel"127.0.0.1:6379> randomkey"name"127.0.0.1:6379> randomkey"tel"

7.RENAME

RENAME KEY newkey

将key改名为newkey。

当key不存在时, 返回一个错误.

当newkey已经存在时, rename命令将覆盖旧值

可用版本:>= 1.0.0

时间复杂度:O(1)

返回值:改名成功时提示 OK ,失败时候返回一个错误。

127.0.0.1:6379> set name redis666OK127.0.0.1:6379> set name2 redis888OK127.0.0.1:6379> rename age newage // 1.当key不存在时, 报错(error) ERR no such key127.0.0.1:6379> rename name name3 // 2.当key存在, newkey不存在OK127.0.0.1:6379> exists name // key不存在了(integer) 0127.0.0.1:6379> get name3 // newkey"redis666"127.0.0.1:6379> rename name3 name2 // 3.当newkey已经存在, key覆盖newkeyOK127.0.0.1:6379> exists name3 // key不存在了(integer) 0127.0.0.1:6379> get name2 // newkey值被覆盖了"redis666"127.0.0.1:6379>

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:微信小程序云开发校园二手书商城,可在线支付提现,源码全开源
下一篇:用于微信小程序的HTML和Markdown格式的富文本渲染组件,支持代码高亮
相关文章

 发表评论

暂时没有评论,来抢沙发吧~