一、系统级命令(不归属任何一个数据结构)

从keys命令说起

1、  可以模式匹配  也就是可以用正则表达式的方式来匹配

格式为KEYS pattern

glob风格通配符规则

?   匹配一个字符

*匹配任意个字符(包括0个)

[]  匹配括号间的任一个字符,可以使用”-”代表一个范围如a[b-d]可以匹配“ab”,”ac”,”ad”

\x  匹配字符x,用于转义符号,如果要匹配”?”就需要使用\?

 

set  设置

get获取

如下使用场景:

产品的缓存  product+”.”+....;

订单的缓存: order+”.”+...;

KEYS *  找到所有的key
利用*
127.0.0.1:6379> flushdb    清空数据库
OK
127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> set nbme pyrene
OK
127.0.0.1:6379> keys *
1) "nbme"
2) "name"
127.0.0.1:6379> keys n?me
1) "nbme"
2) "name"

 

 

2、  判断一个建是否存在

EXISTS key

如果键存在则返回整数类型1,否则返回0

 

3、  删除键

DEL key [key...]

可以删除一个或者多个键,返回值为删除键的个数

 

127.0.0.1:6379> del name nbme
(integer) 2
127.0.0.1:6379> keys *
(empty list or set)

 获取键值的数据类型

TYPE key

判断当前的键是什么类型,返回值可能是string、hash(散列类型)、list、set、zset

hex转换redis redis 转义字符_hex转换redis

hex转换redis redis 转义字符_数据库_02

127.0.0.1:6379> hset collections key value
(integer) 1
127.0.0.1:6379> type collections
hash

View Code

 

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

RANDMKEY

返回值

当数据库不为空的时候返回1

当数据库为空的时候返回nil

hex转换redis redis 转义字符_hex转换redis

hex转换redis redis 转义字符_数据库_02

127.0.0.1:6379> randomkey
"name"
127.0.0.1:6379> randomkey
"nbme"
127.0.0.1:6379> randomkey
"name"
127.0.0.1:6379> randomkey
"fruits"
127.0.0.1:6379> randomkey
"collections"
127.0.0.1:6379> randomkey
"nbme"
127.0.0.1:6379> randomkey
"collections"
127.0.0.1:6379> randomkey
"fruits"

View Code

 

  设置过期时间

EXPIRE  key seconds    【以秒为单位】

如果要做缓存就要做过期时间

返回值:

设置成功返回值为1

当 key 不存在或者不能为 key 设置生存时间时(比如在低于 2.1.3 版本的 Redis 中你尝试更新 key 的生存时间),返回 0 

hex转换redis redis 转义字符_hex转换redis

hex转换redis redis 转义字符_数据库_02

127.0.0.1:6379> expire name 5    给name这个键设置5秒
(integer) 1
127.0.0.1:6379> get name
"pyrene"
127.0.0.1:6379> get name
"pyrene"
127.0.0.1:6379> get name
(nil)

View Code

 

PEXPIRE key milliseconds         【毫秒为单位】

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

hex转换redis redis 转义字符_hex转换redis

hex转换redis redis 转义字符_数据库_02

127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> get name
"pyrene"
127.0.0.1:6379> pexpire name 10000
(integer) 1
127.0.0.1:6379> get name
"pyrene"
127.0.0.1:6379> get name
(nil)

View Code

 

 

以某个时间点为设置过期时间 

EXPIREAT  key timestap

返回值:

如果设置成功 返回1

如果key不存在或者没办法设置生存时间返回0

应用场景

如每晚10点清空集群缓存

 

pexpireat  【微妙】

以微妙时间点为过期时间

 

 

TTL 查看key还有多长的存活时间(time to live)  [秒为单位]

返回值

当key不存在的时候,返回-2

当key存在但是没有设置生存时间的时候返回-1

否则以秒为单位,返回key的剩余生存时间

 

127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> expire name 20
(integer) 1
127.0.0.1:6379> ttl name
(integer) 16
127.0.0.1:6379> ttl name
(integer) 13
127.0.0.1:6379> ttl name
(integer) 11
127.0.0.1:6379> ttl name
(integer) 8
127.0.0.1:6379> ttl name
(integer) 3
127.0.0.1:6379> ttl name
(integer) -2

与ttl对应的就是pttl,唯一不一样的是以【毫秒为单位】

 

127.0.0.1:6379> set name pyrene
OK
127.0.0.1:6379> get name
"pyrene"
127.0.0.1:6379> expire name 20
(integer) 1
127.0.0.1:6379> pttl name
(integer) 16577
127.0.0.1:6379> pttl name
(integer) 10588
127.0.0.1:6379> pttl name
(integer) 474
127.0.0.1:6379> pttl name
(integer) -2