redis基本类型和订阅

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

601e8f1eefdd42d7891c222e22246f63.png

2.哈希
哈希是一种键值对集合,其中每个键都对应一个值。

hset <key> <field> <value>  # 设置哈希字段   这里的 <key> 是哈希表的键名,<field> 是要设置的字段名,<value> 是字段对应的值,当你设置多值得时候key,field,value要不一样,不然的话可能被替换咯
hget <key> <field>          # 获取哈希字段
hgetall <key>               # 获取哈希所有字段和值
hkeys <key>                 # 获取哈希所有字段
hvals <key>                 # 获取哈希所有值
hdel <key> <field>          # 删除哈希字段

41e5ee256d2b4487bd2caedf20287a10.png


3.列表
列表是一种有序的字符串集合,可以在列表的两端进行插入和删除操作。以下是列表的命令行命令:

lpush <key> <value>  # 在列表左端插入元素 ,这里的 <key> 是列表的键名,<value> 是要插入的值。
rpush <key> <value>  # 在列表右端插入元素
lpop <key>           # 删除列表左端元素
rpop <key>           # 删除列表右端元素
lrange <key> <start> <stop>  # 获取列表指定范围的元素
38c4cb26fe4c4f06996aaf36feee8e14.png

使用 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

1447fe794fa447a8a255d1133c7d1772.png

 

首先使用 SADD 命令向集合 set1 中添加了两个成员 "member1""member2",向集合 set2 中添加了成员 "member2""member3"。然后分别使用 SMEMBERS set1SINTER set1 set2SUNION set1 set2SDIFF set1 set2 命令来获取集合的所有成员、集合 set1set2 的交集、并集以及差集。

 

 

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
 

111422cce0fd4233982f1d4203a7b1e1.png

三、事务处理
Redis支持事务处理,可以将多个命令打包成一个事务,然后一次性执行。以下是事务处理的命令行命令:

multi         # 开始事务
exec          # 执行事务
discard       # 取消事务
watch <key>   # 监视键
unwatch       # 取消监视
2c0700f46d714a458efe12ce9b8fd14e.png使用 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

431ede881e4047eda94ce47c79e6b3cd.png

41c83e95d1e241d0a4ce8a3529dc55db.png

 

 

 

  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaowang798abc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值