redis-cli -h <host> -p <port> -a <password>
其中,< host>是Redis服务器的主机名或IP地址,< port>是Redis服务器的端口号,< password>是Redis服务器的密码(如果有的话)。
set <key> <value> # 设置字符串
get <key> # 获取字符串
del <key>#删除字符串
Redis支持多种数据类型,包括字符串、哈希、列表、集合和有序集合。
1.字符串
set <key> <value> # 设置字符串
get <key> # 获取字符串
append <key> <value> # 追加字符串
incr <key> # 将键值加1
decr <key> # 将键值减1
2.哈希
哈希是一种键值对集合,其中每个键都对应一个值。
hset <key> <field> <value> # 设置哈希字段 这里的
<key>
是哈希表的键名,<field>
是要设置的字段名,<value>
是字段对应的值,当你设置多值得时候key,field,value要不一样,不然的话可能被替换咯
hget <key> <field> # 获取哈希字段
hgetall <key> # 获取哈希所有字段和值
hkeys <key> # 获取哈希所有字段
hvals <key> # 获取哈希所有值
hdel <key> <field> # 删除哈希字段
3.列表
列表是一种有序的字符串集合,可以在列表的两端进行插入和删除操作。以下是列表的命令行命令:lpush <key> <value> # 在列表左端插入元素 ,这里的
<key>
是列表的键名,<value>
是要插入的值。
rpush <key> <value> # 在列表右端插入元素
lpop <key> # 删除列表左端元素
rpop <key> # 删除列表右端元素
lrange <key> <start> <stop> # 获取列表指定范围的元素
使用 LRANGE <key> <start> <stop> 命令来获取列表中指定范围的元素。
LRANGE mylist 0 -1
这里的 <key> 是列表的键名,<start> 是起始索引,<stop> 是结束索引。索引从 0 开始,如果 <start> 和 <stop> 都为 -1,表示获取列表的所有元素
4.集合
集合是一种无序的字符串集合,可以进行交集、并集和差集等操作。sadd <key> <value> # 添加集合元素
srem <key> <value> # 删除集合元素
smembers <key> # 获取集合所有元素
sinter <key1> <key2> # 获取集合交集
sunion <key1> <key2> # 获取集合并集
sdiff <key1> <key2> # 获取集合差集
SADD set1 "member1"
SADD set1 "member2"
SADD set2 "member2"
SADD set2 "member3"
SMEMBERS set1
SINTER set1 set2
SUNION set1 set2
SDIFF set1 set2
首先使用 SADD
命令向集合 set1
中添加了两个成员 "member1"
和 "member2"
,向集合 set2
中添加了成员 "member2"
和 "member3"
。然后分别使用 SMEMBERS set1
、SINTER set1 set2
、SUNION set1 set2
和 SDIFF set1 set2
命令来获取集合的所有成员、集合 set1
和 set2
的交集、并集以及差集。
5.有序集合
有序集合是一种有序的字符串集合,每个元素都有一个分数,可以进行按分数排序、范围查询等操作。以下是有序集合的命令行命令:
ADD <key> <score> <value>
向有序集合中添加一个成员,并指定其分数。
ZADD mysortedset 10 "member1"
ZADD mysortedset 20 "member2"ZREM <key> <value>
从有序集合中移除指定成员。
ZREM mysortedset "member1"ZRANGE <key> <start> <stop>
按索引范围获取有序集合中的成员。
ZRANGE mysortedset 0 -1
ZRANGE mysortedset 0 1 # 获取前两个成员ZREVRANGE <key> <start> <stop>
按分数倒序获取有序集合中的成员。
ZREVRANGE mysortedset 0 -1
ZREVRANGE mysortedset 0 1 # 按分数倒序获取前两个成员ZRANGEBYSCORE <key> <min> <max>
按分数范围获取有序集合中的成员。
ZRANGEBYSCORE mysortedset 0 20
三、事务处理
Redis支持事务处理,可以将多个命令打包成一个事务,然后一次性执行。以下是事务处理的命令行命令:
multi # 开始事务
exec # 执行事务
discard # 取消事务
watch <key> # 监视键
unwatch # 取消监视
使用 MULTI 命令开始一个事务,在 MULTI 和 EXEC 之间插入要执行的命令;使用 EXEC 命令提交事务,Redis 将按照顺序执行事务中的所有命令。如果事务中有命令执行失败,那么事务的所有命令都将不会被执行;使用 DISCARD 命令取消事务,这会清除事务队列中的所有命令,并退出事务状态。
使用 WATCH 命令监视一个或多个键,在事务执行之前,如果这些键被其他客户端修改,则事务会被取消;取消监视(Unwatch)
取消对所有键的监视,不再关心键的变化。
四、发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
Redis支持发布订阅模式,可以将多个客户端连接到同一个频道,然后将消息发布到频道中,所有订阅该频道的客户端都能收到消息。Redis的发布和订阅最大的缺点是消息不能持久化!也就是我们通过Redis发送的消息,压根在Redis当中根本没有存。
以下是发布订阅的命令行命令:
subscribe <channel> # 订阅频道
unsubscribe <channel> # 取消订阅频道
订阅端:
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> SUBSCRIBE dingdada #订阅名字为 dingdada 的频道
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "dingdada"
3) (integer) 1
#等待推送的信息
1) "message" #消息
2) "dingdada" #来自哪个频道的消息
3) "hello world\xef\xbc\x81" # 消息的具体内容
1) "message"
2) "dingdada"
3) "my name is dyj\x81"
发送端:
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> PUBLISH dingdada "hello world!" #发送消息到dingdada 频道
(integer) 1
127.0.0.1:6379> PUBLISH dingdada "my name is dyj" #发送消息到dingdada 频道
(integer) 1