二、Redis入门-全局命令

1.查看所有键

1.1插入3对字符串类型的键值对

127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set xg xiaoge
OK
127.0.0.1:6379> set java jedis
OK

1.2 keys * 命令将所有的键输出

127.0.0.1:6379> keys *
1) "hello"
2) "java"
3) "xg"

2.键总数

dbsize
2.1插入一个列表类型的键值对(值是多个元素组成)

127.0.0.1:6379> rpush xglist 1 2 3 4 5
(integer) 5
#查看所有键 keys *
127.0.0.1:6379> keys *
1) "hello"
2) "xglist"
3) "java"
4) "xg"
#查看键的总数 dbsize
127.0.0.1:6379> dbsize
(integer) 4

注意:keys * 与dbsize的区别
dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的键总数量,所以dbsize命令的时间复杂度是O(1)。而keys * 命令会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键时,线上环境禁止使用keys命令

3.检查键是否存在

exists key
如果键存在则返回1,不存在返回0:

127.0.0.1:6379> exists hello
(integer) 1
127.0.0.1:6379> exists redis
(integer) 0

4.删除键

del key [key …]
del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除。

127.0.0.1:6379> del java
(integer) 1
127.0.0.1:6379> exists java
(integer) 0
127.0.0.1:6379> del xglist
(integer) 1
127.0.0.1:6379> exists xglist
(integer) 0

假设删除一个不存在的键,就会返回0:

127.0.0.1:6379> del not_exist_key
(integer) 0

del删除多个键

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> set b 2
OK
127.0.0.1:6379> set c 3
OK
127.0.0.1:6379> keys *
1) "c"
2) "b"
3) "hello"
4) "xg"
5) "a"
127.0.0.1:6379> del a b c
(integer) 3
127.0.0.1:6379> keys *
1) "hello"
2) "xg"

5.键过期

expire key seconds
Redis支持对键添加过期时间,当超时过期时间后,会自动删除键。
ttl
ttl命令会返回键的剩余过期时间,它有3种返回值:

大于等于0的整数:键剩余的过期时间
-1:键没有设置过期时间
-2:键不存在

127.0.0.1:6379> set java redis
OK
127.0.0.1:6379> ttl java
(integer) -1    #键没有设置过期时间
127.0.0.1:6379> ttl not_exist_key
(integer) -2    #键不存在
127.0.0.1:6379> expire java 10
(integer) 1     #添加过期时间为10秒
127.0.0.1:6379> ttl java
(integer) 7     #还剩7秒过期
127.0.0.1:6379> ttl java
(integer) -2    #java键已经被删除

6.键的数据结构类型

type key
如果key存在,返回对应的类型:string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)
如果key不存在,则返回none

127.0.0.1:6379> rpush xglist a b c d
(integer) 4
127.0.0.1:6379> keys *
1) "xglist"
2) "hello"
3) "xg"
127.0.0.1:6379> type xglist
list
127.0.0.1:6379> type xg
string
127.0.0.1:6379> type not_exist_key
none

7.查看内部编码

object encoding key

127.0.0.1:6379> object encoding xg
"embstr"
127.0.0.1:6379> object encoding xglist
"ziplist"

数据结构和内部编码
每种数据结构都有自己的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内部编码
二、Redis入门-全局命令_第1张图片
Redis的5种数据结构
二、Redis入门-全局命令_第2张图片
Redis数据结构和内部编码

你可能感兴趣的:(redis)