Redis学习笔记 (四) 之KEY相关命令

Redis学习笔记(四) 之KEY相关命令

KEY 相关命令

  • KEYS
    • 查找所有符合给定模式pattern(正则表达式)的 key 。
KEYS pattern
127.0.0.1:6379> KEYS *
 1) "say"
 2) "res"
 3) "userInfo2"
 4) "test7"
 5) "test4"
 6) "userInfo3"
 7) "counter"
 8) "test6"
 9) "TEST"
10) "foo"
11) "test2"
12) "test5"
13) "test8"

常用的正则表达式

* :匹配任意个字符
? :匹配一个任意字符
[] :匹配[]之间的一个字符
\x:匹配特殊字符
  • EXISTS
    • 返回key是否存在
 EXISTS key [key ...]
127.0.0.1:6379> EXISTS counter
(integer) 1
127.0.0.1:6379> EXISTS counters
(integer) 0
  • TYPE
    • 返回key所存储的value的数据结构类型,它可以返回string, list, set, zset 和 hash等不同的类型。
TYPE key
127.0.0.1:6379> TYPE linux
string
127.0.0.1:6379> TYPE userInfo   //不存在的key返回none
none
127.0.0.1:6379> TYPE userInfo1
hash
  • EXPIRE
    • 设置key的过期时间,超过时间后,将会自动删除该key。
 EXPIRE key seconds
127.0.0.1:6379> EXPIRE linux 10 //设置过期时间10秒
(integer) 1
127.0.0.1:6379> TTL linux
(integer) 3
127.0.0.1:6379> EXPIRE linux 10
(integer) 1
127.0.0.1:6379> TTL linux
(integer) 8
127.0.0.1:6379> TTL linux
(integer) -2
//如果key已经存在过期时间,在通过EXPIRE设置的时候会覆盖之前过期。
  • EXPRIEAT
    • EXPIREAT 的作用和 EXPIRE类似,都用于为 key 设置生存时间。不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳 Unix timestamp 。
EXPIREAT key timestamp
127.0.0.1:6379> EXPIREAT test3 2293840000
(integer) 1
127.0.0.1:6379> TTL test3
(integer) 804684005
  • PEXPIRE
    • 这个命令和EXPIRE命令的作用类似,但是它以毫秒为单位设置 key 的生存时间,而不像EXPIRE命令那样,以秒为单位。
 PEXPIRE key milliseconds 
127.0.0.1:6379> PEXPIRE test3 10000
(integer) 1
127.0.0.1:6379> PTTL test3
(integer) 1848
127.0.0.1:6379> PTTL test3
(integer) 432
127.0.0.1:6379> PTTL test3
(integer) -2
  • PEXPIREAT
    • PEXPIREAT 这个命令和EXPIREAT命令类似,但它以毫秒为单位设置 key 的过期 unix 时间戳,而不是像EXPIREAT那样,以秒为单位。
PEXPIREAT key milliseconds-timestamp 
127.0.0.1:6379> PEXPIREAT TEST 1555555555005
(integer) 1
127.0.0.1:6379> PTTL TEST
(integer) 66399126857
  • TTL
    • 返回key剩余的过期时间。 这种反射能力允许Redis客户端检查指定key在数据集里面剩余的有效期。
 TTL key 
127.0.0.1:6379> TTL TEST    //返回的单位是秒
(integer) 66398975
  • PTTL
    • 这个命令类似于TTL命令,但它以毫秒为单位返回 key 的剩余生存时间。
 PTTL key 
127.0.0.1:6379> PTTL TEST
(integer) 66398879427
  • PERSIST
    • 移除给定key的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key )。
 PERSIST key 
127.0.0.1:6379> PERSIST TEST
(integer) 1
127.0.0.1:6379> TTL TEST    //TEST变为永久有效
(integer) -1
  • DEL
    • 删除指定的key,如果删除的key不存在,则直接忽略。
DEL key [key ...]
127.0.0.1:6379> DEL TEST test4 test5
(integer) 3 //删除3个keys
  • RANDOMKEY
    • 从当前数据库返回一个随机的key。
RANDOMKEY -
127.0.0.1:6379> RANDOMKEY
"test7"
127.0.0.1:6379> RANDOMKEY
"userInfo2"
127.0.0.1:6379> RANDOMKEY
"userInfo1"
  • RENAME
    • 将key重命名为newkey,如果key与newkey相同,将返回一个错误。如果newkey已经存在,则值将被覆盖。
RENAME key newkey
127.0.0.1:6379> RENAME test8 test88
OK
127.0.0.1:6379> GET test8
(nil)
127.0.0.1:6379> GET test88
"8"
  • RENAMENX
    • 当且仅当 newkey 不存在时,将 key 改名为newkey 。当 key 不存在时,返回一个错误。
 RENAMENX key newkey 
127.0.0.1:6379> EXISTS hello    //hello存在
(integer) 1
127.0.0.1:6379> RENAMENX foo hello  
(integer) 0 
  • DUMP
    • 序列化给定 key ,并返回被序列化的值,使用 RESTORE 命令可以将这个值反序列化为 Redis 键。
 DUMP key 
127.0.0.1:6379> SET test "this is a test"
OK
127.0.0.1:6379> DUMP test
"\x00\x0ethis is a test\a\x00\x0fH\xad\xf8\x92*xq"
  • RESTORE
    • 反序列化给定的序列化值,并将它和给定的 key 关联。
    • 参数 ttl 以毫秒为单位为 key 设置生存时间;如果 ttl 为 0 ,那么不设置生存时间。
    • RESTORE 在执行反序列化之前会先对序列化值的 RDB 版本和数据校验和进行检查,如果 RDB 版本不相同或者数据不完整的话,那么 RESTORE 会拒绝进行反序列化,并返回一个错误。
RESTORE key ttl serialized-value [REPLACE]
127.0.0.1:6379> RESTORE testDump 0 "\x00\x0ethis is a test\a\x00\x0fH\xad\xf8\x92*xq"   //ttl为0不设置生存时间
OK
127.0.0.1:6379> GET testDump
"this is a test"
  • MOVE
    • 将当前数据库的 key 移动到给定的数据库 db 当中。
    • 如果当前数据库(源数据库)和给定数据库(目标数据库)有相同名字的给定 key ,或者 key 不存在于当前数据库,那么 MOVE 没有任何效果。
 MOVE key db 
127.0.0.1:6379> SET testMove MOVE
OK
127.0.0.1:6379> GET testMove
"MOVE"
127.0.0.1:6379> MOVE testMove 1
(integer) 1
127.0.0.1:6379> SELECT 1
OK
127.0.0.1:6379[1]> EXISTS testMove
(integer) 1
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
尚硅谷是一个教育机构,他们提供了一份关于Redis学习笔记。根据提供的引用内容,我们可以了解到他们提到了一些关于Redis配置和使用的内容。 首先,在引用中提到了通过执行命令"vi /redis-6.2.6/redis.conf"来编辑Redis配置文件。这个命令可以让你进入只读模式来查询"daemonize"配置项的位置。 在引用中提到了Redis会根据键值计算出应该送往的插槽,并且如果不是该客户端对应服务器的插槽,Redis会报错并告知应该前往的Redis实例的地址和端口。 在引用中提到了通过修改Redis的配置文件来指定Redis的日志文件位置。可以使用命令"sudo vim /etc/redis.conf"来编辑Redis的配置文件,并且在文件中指定日志文件的位置。 通过这些引用内容,我们可以得出结论,尚硅谷的Redis学习笔记涵盖了关于Redis的配置和使用的内容,并提供了一些相关命令和操作示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Redis学习笔记--尚硅谷](https://blog.csdn.net/HHCS231/article/details/123637379)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Redis学习笔记——尚硅谷](https://blog.csdn.net/qq_48092631/article/details/129662119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值