分类:
编程软件 Java 中间件 Elasticsearch 前端开发 kafka 云计算大数据 Lua zookeeper PHP 网络与运维 项目构建管理 ActiveMQ 办公应用软件 Memcached RabbitMQ Sentinel Nacos

Redis 哈希(Hash)详解

2019-04-17 23:39|来源: 网路

Redis 哈希(Hash)

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

实例

redis 127.0.0.1:6379> HMSET w3ckey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL w3ckey

1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"


在以上实例中,我们设置了 redis 的一些描述信息(name, description, likes, visitors) 到哈希表的 w3ckey 中。


Redis hash 命令

下表列出了 redis hash 基本的相关命令:

序号 命令及描述
1 HDEL key field2 [field2]
删除一个或多个哈希表字段
2 HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。
3 HGET key field
获取存储在哈希表中指定字段的值
4 HGETALL key
获取在哈希表中指定 key 的所有字段和值
5 HINCRBY key field increment
为哈希表 key 中的指定字段的整数值加上增量 increment 。
6 HINCRBYFLOAT key field increment
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
7 HKEYS key
获取所有哈希表中的字段
8 HLEN key
获取哈希表中字段的数量
9 HMGET key field1 [field2]
获取所有给定字段的值
10 HMSET key field1 value1 [field2 value2 ]
同时将多个 field-value (域-值)对设置到哈希表 key 中。
11 HSET key field value
将哈希表 key 中的字段 field 的值设为 value 。
12 HSETNX key field value
只有在字段 field 不存在时,设置哈希表字段的值。
13 HVALS key
获取哈希表中所有值
14 HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。

更多命令请参考:https://redis.io/commands

相关问答

更多

Redis哈希或密钥替换(Redis hash or key replace)

如果您希望更改(或添加)散列中的单个值,则可以使用HSET命令。 这不会从redis“获取”哈希值(将其返回给您),它只会修改它。 在您的情况下,命令将是HSET YourHashName d 10 。 关于redis.io的HSET文档 如果您发现一次更改多个值,请使用HMSET 。 此命令比多个HSET调用更有效地执行相同的操作,因为它在网络上不那么繁琐。 关于redis.io的HMSET文档 请记住,在散列中添加或更改数据时,您不需要首先读取/获取散列(或任何单个散列键值)。 此外,如果在

Redis - 如何通过redis中的哈希字段排序而不是键?(Redis - how to sort by hash field in redis as opposed to key?)

这是一个已知的问题: 链接 你可以做以下事情: redis 127.0.0.1:6379> sadd b 5 3 4 redis 127.0.0.1:6379> zadd a 10 1 15 2 5 3 0 4 20 5 redis 127.0.0.1:6379> zinterstore结果2 ab redis 127.0.0.1:6379> zrange结果0 -1 1)“4” 2)“3” 3)“5” this is a know issue: link you could do the fo

从redis中的哈希中获取子键(Fetch subkeys from a hash in redis)

你需要使用HKEYS命令。 见下面的例子: redis> HSET myhash field1 "Hello" (integer) 1 redis> HSET myhash field2 "World" (integer) 1 redis> HKEYS myhash 1) "field1" 2) "field2" 数组回复:哈希中的字段列表,或者当密钥不存在时的空列表。 you need to use HKEYS command. see example below: redis> HSET

在Redis中搜索哈希密钥(Search in Redis hash key)

如果您指的是散列内的值或条目。 那是不可能的。 hset hash /article/200 1 hset hash /article/200?something 2 hset hash somethingelse 3 检索此哈希中的条目是不可能的。 您需要在应用程序逻辑中处理它们,或者您必须为此编写lua脚本。 如果你想要哈希,即,检索键,那么它是可能的。 hset /article/200 value1 1 hset /article/200?something value2 2 hset

从Redis哈希获取随机/任何值(Get random / any value from Redis hash)

访问给定哈希对象的随机项(或第一个或最后一个)没有技巧。 如果您需要迭代哈希对象,您有几种可能性: 第一个是用你可以切片的另一个数据结构(如列表或zset)来补充哈希。 如果只在哈希中添加项目(并迭代删除它们),则列表就足够了。 如果您可以添加/删除/更新项目(并迭代删除它们),则需要zset(将时间戳作为分数)。 zset的两个列表都可以被切片(lrange,zrange,zrangebyscore),因此很容易通过chunk迭代它们,并保持两个数据结构同步。 第二个是用另一个支持pop类似操

相关文章

更多

最近更新

更多