Redis个人笔记
Redis 客户端的基本语法为:
$ redis-cli
$ redis-cli -h host -p port -a password
以下实例演示了如何连接到主机为 127.0.0.1,端口为 6379 ,密码为 mypass 的 redis 服务上。
$redis-cli -h 127.0.0.1 -p 6379 -a "mypass" redis 127.0.0.1:6379> redis 127.0.0.1:6379> PING PONG
语法
Redis 键命令的基本语法如下:
redis 127.0.0.1:6379> COMMAND KEY_NAME
实例
redis 127.0.0.1:6379> SET runoobkey redis OK redis 127.0.0.1:6379> DEL runoobkey (integer) 1
在以上实例中 DEL 是一个命令, runoobkey 是一个键。 如果键被删除成功,命令执行后输出 (integer) 1,否则将输出 (integer) 0
Redis keys 命令
下表给出了与 Redis 键相关的基本命令:
序号 | 命令及描述 |
---|---|
1 |
DEL key 该命令用于在 key 存在时删除 key。 |
2 |
DUMP key 序列化给定 key ,并返回被序列化的值。 |
3 |
EXISTS key 检查给定 key 是否存在。 |
4 |
EXPIRE key seconds 为给定 key 设置过期时间,以秒计。 |
5 |
EXPIREAT key timestamp EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。 不同在于 EXPIREAT 命令接受的时间参数是 UNIX 时间戳(unix timestamp)。 |
6 |
PEXPIRE key milliseconds 设置 key 的过期时间以毫秒计。 |
7 |
PEXPIREAT key milliseconds-timestamp 设置 key 过期时间的时间戳(unix timestamp) 以毫秒计 |
8 |
KEYS pattern 查找所有符合给定模式( pattern)的 key 。 |
9 |
MOVE key db 将当前数据库的 key 移动到给定的数据库 db 当中。 |
10 |
PERSIST key 移除 key 的过期时间,key 将持久保持。 |
11 |
PTTL key 以毫秒为单位返回 key 的剩余的过期时间。 |
12 |
TTL key 以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。 |
13 |
RANDOMKEY 从当前数据库中随机返回一个 key 。 |
14 |
RENAME key newkey 修改 key 的名称 |
15 |
RENAMENX key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 。 |
16 |
TYPE key 返回 key 所储存的值的类型。 |
Redis 发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis 客户端可以订阅任意数量的频道。
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:
当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:
实例
以下实例演示了发布订阅是如何工作的。在我们实例中我们创建了订阅频道名为 redisChat:
redis 127.0.0.1:6379> SUBSCRIBE redisChat Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "redisChat" 3) (integer) 1
现在,我们先重新开启个 redis 客户端,然后在同一个频道 redisChat 发布两次消息,订阅者就能接收到消息。
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique" (integer) 1 redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by runoob.com" (integer) 1 # 订阅者的客户端会显示如下消息 1) "message" 2) "redisChat" 3) "Redis is a great caching technique" 1) "message" 2) "redisChat" 3) "Learn redis by runoob.com"