1. Redis 全局命令
全局命令是指对所有数据类型都通用的命令
1.1. Redis 数据格式
Redis 的数据格式是 key:value 形式的
key:value
键:值
1.2. 写入数据
使用 SET key value
~]# redis-cli
127.0.0.1:6379> SET k1 v1
OK
127.0.0.1:6379> SET k2 v2
OK
127.0.0.1:6379> SET k3
1.3. 查看key的类型
127.0.0.1:6379> TYPE k1
string
1.4. 查看所有key
注意:线上生产禁止执行!!!线上生产环境中,Redis数据较大key的数据较多的话,很可能使用 KEYS *
命令就会把服务器内存占满,从而导致 Redis 挂机
127.0.0.1:6379> KEYS *
1) "k3"
2) "k1"
3) "k2"
1.5. 查看有多少key
127.0.0.1:6379> DBSIZE
(integer) 3
1.6. 查看某个key是否存在
127.0.0.1:6379> EXISTS K1
(integer) 0
127.0.0.1:6379> EXISTS k1
(integer) 1
127.0.0.1:6379> EXISTS k1 k2 k3
(integer) 3
127.0.0.1:6379> EXISTS k1 K2 k3
(integer) 2
状态码:
0:表示这个 key 不存在
1:表示这个 key 存在
N:表示有 N 个 key 存在
1.7. 删除某个key
127.0.0.1:6379> DEL k1
(integer) 1
127.0.0.1:6379> DEL k2 k3
(integer) 2
127.0.0.1:6379> DEL k1
(integer) 0
状态码:
0:表示要删除的 key 不存在
1:表示这个 key 存在,并且被删除成功
N:表示有 N 个 key 存在,并且被删除成功
2. Redis 字符串操作
2.1. 字符串常用指令
命令 | 含义 | 用法 |
---|---|---|
set | 设置一个key | set key value |
get | 查看一个key | get key value |
mset | 设置多个key | mset key1 value1 key2 value2 |
mget | 查看多个key | mget key1 key2 |
incr | 对整数的value值进行增值,默认一次加1 | incr key |
incrby | 对整数的value进行自定义增加值 | incrby key 增加的值 |
decr | 对整数的value值进行缩值,默认一次减1 | decr key |
decrby | 对整数的value进行自定义缩值 | decr key 缩减的值 |
del | 删除一个key | del key |
exists | 查看一个key是否存在 | exists key |
ttl | 查看一个key的生命周期 | ttl key |
expire | 设置key的生命周期 | expire key 生命周期时长 |
persist | 设置key的生命周期为永不过期 | persist key |
2.2. 创建一个key
语法:SET key value
# 1. 在交互模式下创建 key
~]# redis-cli
127.0.0.1:6379> SET k1 v1
OK
# 2. 在命令行创建 key
~]# redis-cli SET k2 v2
OK
2.3. 查看一个key的值
语法:GET key
# 1. 在交互模式下查看 key
127.0.0.1:6379> GET k1
"v1"
# 2. 在命令行查看 key
~]# redis-cli GET k2
"v2"
2.4. 从文件中读取value并创建key
Redis 支持 value 的内容是中的,准备内容为中文的文件,创建一个key的时候读取文件的值
中文的文件存储到 Redis 之后,显示的是乱码,实际上还是中,可以以导出到文件查看中文,也可以加上 --raw
解决乱码显示问题
# 1. 准备一个中文内容的文件
~]# cat > /tmp/text << EOF
> 道可道,非常道
> EOF
# 2. 从文件中读取内容并创建一个 key
~]# redis-cli set text `cat /tmp/text`
OK
# 3. 查看 key 的内容,发现显示乱码
~]# redis-cli get text
"\xe9\x81\x93\xe5\x8f\xaf\xe9\x81\x93\xef\xbc\x8c\xe9\x9d\x9e\xe5\xb8\xb8\xe9\x81\x93"
# 4. 将 key 导出到文件时会发现时中文输出
~]# redis-cli get text > /tmp/text2
~]# cat /tmp/text2
道可道,非常道
# 5. 解决 Redis 显示中文乱码
~]# redis-cli --raw get text
道可道,非常道
2.5. 创建多个key
语法:MSET key value [key value ...]
127.0.0.1:6379> MSET k3 v3 k4 v4 k5 v5
OK
127.0.0.1:6379> KEYS *
1) "k3"
2) "k1"
3) "text"
4) "k5"
5) "k2"
6) "k4"
~]# redis-cli MSET k3 v3 k4 v4 k5 v5
OK
2.6. 查看多个key的值
语法:MGET key [key ...]
127.0.0.1:6379> MGET k3 k4 k5
1) "v3"
2) "v4"
3) "v5"
~]# redis-cli MGET k3 k4 k5
1) "v3"
2) "v4"
3) "v5"
2.7. 天然计数器
Redis 支持对些整数 value 增加或者减少,前提是 value 必须是整数
整数增加使用 INCR
命令,INCR
每次增加1,INCRBY
可以更加自己的需求增加
# 1. 创建一个整数的 key,将 50 增加到 55
127.0.0.1:6379> SET num1 50
OK
127.0.0.1:6379> INCR num1
(integer) 51
127.0.0.1:6379> INCR num1
(integer) 52
127.0.0.1:6379> INCR num1
(integer) 53
127.0.0.1:6379> INCR num1
(integer) 54
127.0.0.1:6379> INCR num1
(integer) 55
127.0.0.1:6379> GET num1
"55"
# 2. 使用 INCRBY 自定义增加值,将 55 增加到 60
127.0.0.1:6379> GET num1
"55"
127.0.0.1:6379> INCRBY num1 5
(integer) 60
127.0.0.1:6379> GET num1
"60"
我们还可以使用 INCTBY
对值进行减少
127.0.0.1:6379> GET num1
"60"
127.0.0.1:6379> INCRBY num1 -1
(integer) 59
127.0.0.1:6379> INCRBY num1 -1
(integer) 58
127.0.0.1:6379> INCRBY num1 -1
(integer) 57
127.0.0.1:6379> INCRBY num1 -1
(integer) 56
127.0.0.1:6379> INCRBY num1 -1
(integer) 55
127.0.0.1:6379> INCRBY num1 -5
(integer) 50
但是 Redis 提供了单独的减少命令 DECR
和 DECRBY
, DECR
每次减 1, DECRBY
可以自定义每次减去的值
127.0.0.1:6379> GET num1
"50"
127.0.0.1:6379> DECR num1
(integer) 49
127.0.0.1:6379> DECR num1
(integer) 48
127.0.0.1:6379> DECR num1
(integer) 47
127.0.0.1:6379> DECRBY num1 10
(integer) 37