常用命令:
命令 | 描述 |
---|---|
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消息订阅可能会存在丢失消息的风险,后面会学习使用其他方式来编写可靠的消息传递,易用性与可靠性之间的取舍需要使用者自行判断。