假装在面试(一):你知道哪些Redis的命令行,它们都有哪些作用。

本文深入解析Redis中的全局命令,包括keys*、dbsize、existskey、delkey、expirekeyseconds、ttlkey和typekey等,阐述了各命令的功能、使用场景及潜在风险,特别强调了keys*命令在生产环境中的禁用原则。

全局命令:

keys *

该命令行会将当前redis中存储的所有key显示出来。因为redis是单线程模型,所以一次取出大量的key会让线程阻塞相当长的时间,在线上服务器使用会让其他服务器无法正常进行。可以认为这个命令在线上环境禁止使用!!!

dbsize

该命令行显示当前redis中存储的key的数量。这个命令行不会造成线程的阻塞,因为它并不是遍历所有的键,Redis内置的计数器在每次新增和删除键的时候会记录键的增减,dbsize命令只是取出这一个内部变量,时间复杂度是O(1)。

exists key

该命令用处是检查输入的key是否存在,如果建存在返回1,不存在返回0。

del key [key …]

该命令是删除对应的键key,如果有多个key需要删除,用空格隔开即可。如:
del key1 key2 key3
如果删除成功,返回删除键的个数,单个key返回1,n个key返回n。如果删除失败,返回0。

expire key seconds

该命令会给当前的key设置一个过期的时间,单位为秒。
expire key1 10
这条命令行将为key1键设置10s的过期时间,10s后,该键被redis回收。如果设置成功返回1,失败返回0。

ttl key

该命令行返回输入key的剩余过期时间。成功则返回一个int时间,返回-1表示该键没设置过过期时间。返回-2表示该键不存在。

type key

返回当前输入key键的类型,Redis底层存储键值的时候分了很多数据类型,比如string,list等等,该命令会返回当前key对应的数据存储的数据类型。如果key不存在,返回none。

关于type key的延伸:

type命令实际返回的就是当前键的数据结构类型,它们分别是:
string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)
需要注意的是,这仅仅是redis对外的数据结构,redis内部实现这些数据结构的时候,还有许多不同的方式!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值