常用命令:
| 命令 | 描述 |
|---|---|
| HMGET | 从散列中获取一个或多个值 |
| HMSET | 为散列中的一个或多个键设值 |
| HDEL | 删除散列中一个或多个值,返回成功删除的键值对数量 |
| HLEN | 返回散列包含的键值对数量 |
//批量设值 127.0.0.1:6379> hmset hash-key k1 v1 k2 v2 k3 v3 OK //批量获取值 127.0.0.1:6379> hmget hash-key k1 k2 k3 1) "v1" 2) "v2" 3) "v3" //获取键值对数量 127.0.0.1:6379> hlen hash-key (integer) 3 //删除键值对 127.0.0.1:6379> hdel hash-key k1 k2 (integer) 2
下面再列出散列的其他几个批量操作命令:
| 命令 | 描述 |
|---|---|
| HEXISTS | 检查给定键是否存在于散列中 |
| HKEYS | 获取散列包含的所有键 |
| HVALS | 获取散列包含的所有值 |
| HGETALL | 获取散列包含的所有键值对 |
| HINCRBY | 将键存储的值加上给定整数 |
| HINCRBYFLOAT | 将键存储的值加上给定浮点数 |
127.0.0.1:6379> hmset hash-key2 k1 hello k2 world OK //获取散列中所有键 127.0.0.1:6379> hkeys hash-key2 1) "k1" 2) "k2" //检查给定键是否存在于散列中 127.0.0.1:6379> hexists hash-key2 num (integer) 0 // 将键存储的值加1 127.0.0.1:6379> hincrby hash-key2 num 1 (integer) 1 127.0.0.1:6379> hexists hash-key2 num (integer) 1
常用的有序集合命令:
| 命令 | 描述 |
|---|---|
| ZADD | 将带有给定分值的成员添加到有序集合 |
| ZREM | 移除给定元素 |
| ZCARD | 返回有序集合包含的成员数量 |
| ZINCRBY | 将member成员的分值加上给定值 |
| ZCOUNT | 返回分值结余min和max之间的成员数量 |
| ZRANK | 返回成员member在有序集合中的排名 |
| ZSCORE | 返回成员member的分值 |
| ZRANGE | 返回有序集合中排名介于start和stop之间的成员 |
127.0.0.1:6379> zadd zset-key 3 a 2 b 1 c (integer) 3 127.0.0.1:6379> zcard zset-key (integer) 3 //将c加3,返回c的当前分值 127.0.0.1:6379> zincrby zset-key 3 c "4" 127.0.0.1:6379> zscore zset-key b "2" //排名从0开始 127.0.0.1:6379> zrank zset-key c (integer) 2 //返回分值0到3的member的数量 127.0.0.1:6379> zcount zset-key 0 3 (integer) 2 127.0.0.1:6379> zrem zset-key b (integer) 1 127.0.0.1:6379> zrange zset-key 0 -1 withscores 1) "a" 2) "3" 3) "c" 4) "4"
下面再展示另外一些非常有用的有序集合命令:
| 命令 | 描述 |
|---|---|
| ZREVRANK | 成员按分值逆序排 |
| ZREVRANGE | 返回有序集合中排名介于start和stop之间的成员,逆序 |
| ZRANGEBYSCORE | 返回有序集合中,分值介于min和max之间的所有成员 |
| ZREVRANGEBYSCORE | 返回有序集合中,分值介于min和max之间的所有成员,逆序 |
| ZREMRANGEBYRANK | 移除有序集合中排名介于min和max之间的所有成员 |
| ZREMRANGEBYSCORE | 移除有序集合中分值介于min和max之间的所有成员 |
| ZINTERSTORE | 对有序集合执行类似集合的交集运算 |
| ZUNIONSTORE | 对有序集合执行类似集合的并集运算 |
127.0.0.1:6379> zadd zset-1 1 a 2 b 3 c (integer) 3 127.0.0.1:6379> zadd zset-2 4 b 1 c 0 d (integer) 1 //zset-1 zset-2都包含的元素的分值求和 127.0.0.1:6379> zinterstore zset-sum 2 zset-1 zset-2 (integer) 2 127.0.0.1:6379> zrange zset-sum 0 -1 withscores 1) "c" 2) "4" 3) "b" 4) "6" //zset-1 zset-2中所有的元素的分值求和 127.0.0.1:6379> zunionstore zset-union 2 zset-1 zset-2 (integer) 4 127.0.0.1:6379> zrange zset-union 0 -1 withscores 1) "d" 2) "0" 3) "a" 4) "1" 5) "c" 6) "4" 7) "b" 8) "6"
ZINTERSTORE和ZUNIONSTORE的AGGREGATE可选参数为SUM|MIN|MAX,默认为SUM,MIN和MAX可自行测试。
| 命令 | 描述 |
|---|---|
| SUBSCRIBE | 订阅给定的一个或多个频道 |
| UNSUBSCRIBE | 退订给定的频道,若未指定,则退订所有频道 |
| PUBLISH | 向给定频道发送消息 |
| PSUBSCRIBE | 订阅给定模式相匹配的频道 |
| PUNSUBSCRIBE | 退订给定的模式相匹配的频道 |
//进程1订阅channel-1 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "channel-1" 3) (integer) 1
//进程2发布消息 127.0.0.1:6379> publish channel-1 echo (integer) 1
//进程1收到消息 127.0.0.1:6379> subscribe channel-1 Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "channel-1" 3) (integer) 1 1) "message" 2) "channel-1" 3) "echo"
由于网络的不稳定性,Redis消息订阅可能会存在丢失消息的风险,后面会学习使用其他方式来编写可靠的消息传递,易用性与可靠性之间的取舍需要使用者自行判断。