redis集群与主从配置
- redis安装-redis集群管理
- redis主从复制(读写分离)-redis集群管理
- redis主从从架构搭建-redis集群管理
- redis从库只读设置-redis集群管理
- redis主从复制的原理-redis集群管理
- redis sentinel(哨兵) 配置详解-redis集群管理
- redis sentinel.conf详解-redis集群管理
- redis 集群环境搭建-redis集群管理
- redis集群插槽分配-redis集群管理
- redis新增集群节点-redis集群管理
- redis删除集群节点-redis集群管理
- redis集群出现宕机没法访问-redis集群管理
- redis 集群使用主从复制架构-redis集群管理
redis 基础教程
- Redis概述
- 基于linux下redis安装与配置
- 基于window安装redis
- Redis配置文件详解
- 通过redis客户端查看和设置配置
- Redis 客户端连接、密码验证、连接数设置
- 使用info命令获取 redis 服务详细信息
- Redis Desktop Manager客户端使用教程
redis 数据类型
Redis 高级教程
知识点
相关文章
更多最近更新
更多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快速入门
reids常用命令
redis数据结构
java_API_客户端
Jedis
Tlcache
redis_持久化
AOF
RDB
发布订阅(pub/sub)
redis_事件
redis事务
redis通讯协议
RESP(Redis Serialization Protocol)
redis高可用
redis哨兵
监控(Monitoring) 提醒(Notification) 自动故障迁移(Automatic failover)
redis主从复制
-
- 主从复制
- 从从复制
-
- slave向master发送sync命令;
- master开启子进程执行bgsave写入rdb文件;
- master发送缓存和RDB文件给slave;
- master发送数据发送给slave完成复制;
redis集群(Redis_Cluster)
相关问答
更多-
你误解了HSET在Redis中的作用 。 它不是用于保存整个Perl数据结构。 它用于在Redis提供的哈希数据结构内的特定键下保存单个值。 这与普通的键/值存储操作不同,因为您可以在其上使用其他Redis哈希相关操作。 您想要做的就是保存一个完整的Perl数据结构供以后使用,而无需在Redis中对其中的数据进行操作。 您可以使用常规的SET操作,但需要为此序列化 Perl数据结构。 本质上,这意味着将Perl程序用于将这些值存储的内存转换为其他程序可以理解的字符数据。 在Perl中序列化和反序列化数据的常 ...
-
Redis设置vs哈希(Redis set vs hash)[2023-08-29]
Redis哈希很适合存储更复杂的数据,就像您在问题中提出的那样。 我正在使用它们 - 存储需要缓存的多个属性的对象(具体来说,是电子商务网站上特定产品的库存数据)。 当然,我可以使用一个连接的字符串,但这会增加我客户端代码的不必要的复杂性,并且更新一个单独的字段是不可能的。 你可能是对的 - 教程可能只是从Hash引入之前。 它们被明确地设计用于存储对象表示: http : //oldblog.antirez.com/post/redis-weekly-update-1.html 我想,当一个简单的Stri ... -
(这是基于Holger Just的评论纠正我的修正。) 有一个专为您的需求而设计的库叫做concurrent-ruby 。 请访问https://github.com/ruby-concurrency/concurrent-ruby查看。 它有一个Hash类( http://ruby-concurrency.github.io/concurrent-ruby/Concurrent/Hash.html )和一个Map类( http://ruby-concurrency.github.io/concurrent ...
-
它可能,但不是HASH对象,而是有序集。 只要排序集中的所有元素具有相同的分数,您就可以进行字典前缀匹配。 假设您执行以下操作(原始redis命令,但同样适用于python客户端): ZADD foo 0 john:newyork:
ZADD foo 0 john:chicago: ZADD foo 0 kate:chicago: .... 然后,您可以使用ZRANGEBYLEX进行查询: ZRANGEBYLEX foo [john: (j ... -
在Redis中搜索哈希密钥(Search in Redis hash key)[2023-07-24]
如果您指的是散列内的值或条目。 那是不可能的。 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 somet ... -
确保你使用正确的max-memorypolicy(你可能不想要allkeys-lru,因为redis会使访问次数最少的密钥到期,无论它们是否过期)。 您还应该确保redis有足够的内存来存储您不希望过期或被redis驱逐的密钥。 (redis maxmemory config与系统内存相比) 如果您使用不驱逐策略,请确保redis永远不会耗尽内存。 Make sure that you are using the right max-memorypolicy (you probably dont want ...
-
Redis - 如何通过redis中的哈希字段排序而不是键?(Redis - how to sort by hash field in redis as opposed to key?)[2022-04-22]
这是一个已知的问题: 链接 你可以做以下事情: 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 followin ... -
你需要使用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 myhash ...
-
Redis哈希或密钥替换(Redis hash or key replace)[2022-06-15]
如果您希望更改(或添加)散列中的单个值,则可以使用HSET命令。 这不会从redis“获取”哈希值(将其返回给您),它只会修改它。 在您的情况下,命令将是HSET YourHashName d 10 。 关于redis.io的HSET文档 如果您发现一次更改多个值,请使用HMSET 。 此命令比多个HSET调用更有效地执行相同的操作,因为它在网络上不那么繁琐。 关于redis.io的HMSET文档 请记住,在散列中添加或更改数据时,您不需要首先读取/获取散列(或任何单个散列键值)。 此外,如果在设置其数据时 ... -
访问给定哈希对象的随机项(或第一个或最后一个)没有技巧。 如果您需要迭代哈希对象,您有几种可能性: 第一个是用你可以切片的另一个数据结构(如列表或zset)来补充哈希。 如果只在哈希中添加项目(并迭代删除它们),则列表就足够了。 如果您可以添加/删除/更新项目(并迭代删除它们),则需要zset(将时间戳作为分数)。 zset的两个列表都可以被切片(lrange,zrange,zrangebyscore),因此很容易通过chunk迭代它们,并保持两个数据结构同步。 第二个是用另一个支持pop类似操作的数据结构 ...