现在公司里或多或少总是要用到 Redis 来处理缓存数据,虽然有 Redis Manageer 这样的客户端工具,但是现在 AWS、Aliyun 提供的服务都是内网访问的,显然客户端就用不到了,那么熟记几个简单的命令行工具就显得尤为重要。

命令行

1
2
$ redis-cli get name
"10"

redis-cli 是 Redis 的基础命令脚本,后续跟上必要参数进行缓存的操作,不过一般情况下,我们先登录数据库后在进行操作。

1
2
$ redis-cli
127.0.0.1:6379>

加上 --raw 可以避免中文乱码

1
$ redis-cli --raw

指定端口和地址登录

1
$ redis-cli -h redis_host -p redis_port -a redis_password

试想这种情况下,每次都跟上 get name 查询,简直不敢想象

1
2
$ redis-cli ping
PONG

这种情况下,代表可以 ping 通,及可以登录。

set 数据

登录后我们开始设置数据

1
2
3
4
5
SET key value [EX seconds] [PX milliseconds] [NX|XX]
# EX second :设置键的过期时间为 second 秒。 SET key value EX second 效果等同于 SETEX key second value 。
# PX millisecond :设置键的过期时间为 millisecond 毫秒。 SET key value PX millisecond 效果等同于 PSETEX key millisecond value 。
# NX :只在键不存在时,才对键进行设置操作。 SET key value NX 效果等同于 SETNX key value 。
# XX :只在键已经存在时,才对键进行设置操作。

设置键值对

1
2
> set name wxnacy
OK

设置键值对,并设置 10 秒有效期

1
2
> set name wxnacy ex 10
OK

只在不存在 name 键时才设置数据

1
2
3
4
5
> set name wxnacy
OK
> set name wxnacy nx
(nil)
# (nil) 表示没有设置成功

获取信息

获取值

1
2
> get name
"wxnacy"

获取键还有几秒的有效期

1
2
3
4
> set name wxnacy ex 10
OK
> ttl name
(integer) 8

查询 key 列表

1
2
3
4
5
6
7
8
KEY pattern
# 查找所有符合给定模式 pattern 的 key 。
#
# KEYS * 匹配数据库中所有 key 。
# KEYS h?llo 匹配 hello , hallo 和 hxllo 等。
# KEYS h*llo 匹配 hllo 和 heeeeello 等。
# KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
# 特殊符号用 \ 隔开

模糊查询

1
2
3
4
5
6
7
8
9
> set id:1 wxnacy
OK
> set id:1 wxnacy
OK
> set name:1 wxnacy
OK
> keys id*
1) "id:1"
2) "id:2"

删除键

删除一个 key

1
2
3
4
> set name wxnacy
OK
> del name
(integer) 1

删除多个 key

1
2
3
4
5
6
> set name wxnacy
OK
> set age 0
OK
> del name age
(integer) 2

自增自减

1
2
3
4
5
6
7
8
9
10
11
INCR key

# 将 key 中储存的数字值增一。
# 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。

DECR key

# 将 KEY 中储存的数字值减一。
# 如果 KEY 不存在,那么 KEY 的值会先被初始化为 0 ,然后再执行 DECR 操作。
# 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
# 本操作的值限制在 64 位(BIT)有符号数字表示之内。

自增

1
2
3
4
5
6
> incr id
(integer) 1
> set ids 20
OK
> incr ids
(integer) 21

自减

1
2
3
4
5
6
> decr id
(integer) -1
> set ids 20
OK
> decr ids
(integer) 19

Redis 的功能非常强大,还有很多有用的命令,不过我想如果不是重度使用 Redis,没必要也记不住这么多的命令,有这几个键位,我们已经可以完成很多常用功能,再多的就使用的时候再查询文档吧。

03-16 21:52