工具
Web 开发
Web 服务
Redis 学习笔记
快速入门
- 默认端口
6379
- Key / Value 的最大值均为 512 MB
- Redis Sentinel 是一个用于自动化和简化 Redis 复制故障恢复和切换的程序
基础操作
命令行启动 Redis 客户端:
$ redis-cli
持续输出 Redis 的统计信息:
$ redis-cli --stat
默认 1 秒输出一次统计信息,-i <N>
可以指定间隔时间,例如设置为 5 秒输出一次:
$ redis-cli --stat -i 5
获得所有的 Key 值:
$ redis-cli --scan | less
获得所有匹配的 Key 值:
$ redis-cli --scan --pattern 'ag:*' | less
Redis 客户端进行简单测试:
127.0.0.1:6379> ping
PONG
set/get
操作:
127.0.0.1:6379> set k v
OK
127.0.0.1:6379> get k
"v"
ex
设置超时,ttl
获取续存时间 — TTL 返回 -1
表示 Key 没有设置超时,-2
表示找不到 Key:
127.0.0.1:6379> set k v ex 5
OK
127.0.0.1:6379> get k
(nil)
del
删除数据:
127.0.0.1:6379> del k
(integer) 1
127.0.0.1:6379> get k
(nil)
mset/mget
操作:
127.0.0.1:6379> mset a 1 b 2 c 3
OK
127.0.0.1:6379> mget a b c
1) "1"
2) "2"
3) "3"
List
127.0.0.1:6379> rpush list a
(integer) 1
127.0.0.1:6379> rpush list b
(integer) 2
127.0.0.1:6379> lpush list 0
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "0"
2) "a"
3) "b"
一次 push 多个值:
127.0.0.1:6379> lpush list c d e
(integer) 6
127.0.0.1:6379> lrange list 0 -1
1) "e"
2) "d"
3) "c"
4) "0"
5) "a"
6) "b"
rpop/lpop
从 List 的首尾弹出值:
127.0.0.1:6379> lpop list
"e"
127.0.0.1:6379> rpop list
"b"
127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "c"
3) "0"
4) "a"
ltrim
获取一个 List 的子集并把区间外的数据抹掉:
127.0.0.1:6379> rpush list 1 2 3 4 5
(integer) 5
127.0.0.1:6379> ltrim list 0 2
OK
127.0.0.1:6379> lrange list 0 -1
1) "1"
2) "2"
3) "3"
Hash
hset/hget/
操作:
127.0.0.1:6379> hset user:1000 username Jack age 30 verified 1
(integer) 3
127.0.0.1:6379> hget user:1000 username
"Jack"
127.0.0.1:6379> hget user:1000 age
"30"
127.0.0.1:6379> hget user:1000 verified
"1"
hgetall
获取一个 Hash 的所有 Key/Value:
127.0.0.1:6379> hgetall user:1000
1) "username"
2) "Jack"
3) "age"
4) "30"
5) "verified"
6) "1"
hmget
一次获得多个 Key 对应的 Value:
127.0.0.1:6379> hmget user:1000 username age verified no-such-field
1) "Jack"
2) "30"
3) "1"
4) (nil)
配置
设置密码
编辑 /usr/local/etc/redis.conf
,找到如下行:
# requirepass foobared
将 foobared 替换为密码,如:
# requirepass +khB/ovg19Av+A==
重启服务:
$ brew services restart redis
启动客户端访问 — 显示需要授权:
$ redis-cli ping
(error) NOAUTH Authentication required.
带密码启动客户端访问:
$ redis-cli -a +khB/ovg19Av+A== ping
PONG