哈希是一个字符类型字段和值的映射表。
在Redis中,哈希是一种数据结构,用于存储键值对的集合。哈希可以理解为一个键值对的集合,其中每个键都对应一个值。哈希在Redis中的作用主要有以下几点:
1. 存储对象:哈希可以用来存储对象的属性和值,例如存储用户信息、商品信息等。这样可以将一个对象的多个属性存储在一个键下,方便管理和查询。
2. 高效存储和访问:哈希在Redis中使用了一种高效的数据结构,可以快速地存储和访问键值对。这样可以提高数据的读写效率,特别适用于需要频繁读写的场景。
3. 结构化存储:哈希可以帮助将数据进行结构化存储,使得数据更加清晰和易于管理。通过哈希可以实现多维数据的存储和查询,满足复杂数据结构的需求。
总之,哈希在Redis中的作用是用来存储和管理键值对的集合,提高数据的存储和访问效率,实现数据的结构化存储。
Hash当中的命令都是以H开头。
可以使用HSET添加键值对,使用HGET获取键值对,当然也可以使用HGETALL获取所有键值对。
注意上方返回键值对,第一个是键,第二个是值。所以返回的是两个键值对。
使用HDEL删除键值对,HEXISTS判断键值对是否存在。返回1表示存在,返回0表示不存在。
使用HKEYS获取哈希中的键,HLEN获取哈希中的键值对数量。
发布订阅:
在Redis中,发布消息是通过发布/订阅模式实现的。发布/订阅模式是一种消息传递模式,它包括两个主要的角色:发布者和订阅者。发布者将消息发布到一个频道(channel)中,而订阅者可以订阅这个频道,接收发布者发送的消息。
在Redis中,发布消息的命令是PUBLISH,它的语法如下:
PUBLISH channel message
其中,channel表示频道的名称,message表示要发布的消息内容。例如,我们可以通过以下命令向名为“news”的频道发布一条消息:
PUBLISH news "Hello, World!"
当有订阅者订阅了“news”频道时,就会收到这条消息。订阅者可以使用SUBSCRIBE命令来订阅一个或多个频道,例如:
SUBSCRIBE news
这样,当有消息发布到“news”频道时,订阅者就会收到这条消息。如果订阅者想要取消订阅,可以使用UNSUBSCRIBE命令,例如:
UNSUBSCRIBE news
这样就可以取消对“news”频道的订阅了。
使用SUBSCRIBE来订阅频道,PUBLISH来发布消息。
注意第一张图的消息,也就是1下面的输出都是在发布消息后产生的,发布了一个叫Redis的消息到geekhour频道。
当有多个用户订阅的该频道,那么当发布消息的时候,所以订阅该频道的用户都会收到消息。
发布消息的局限性:消息无法持久化、无法记录历史消息等,可以使用Stream流来解决这些问题。