Redis之hash类型

2023-11-19

Redis之hash类型

在这里插入图片描述
redis的hash类型,就像Java中的Map<String, Map<Object,Object>>

1. 设置一个字段/获取一个字段

设置一个字段:HSET key field value
获取一个字段:HGET key field

127.0.0.1:6379> hset user id 1
(integer) 1
127.0.0.1:6379> hget user id
"1"

2. 获取所有字段值

HGETALL key

127.0.0.1:6379> hgetall user
1) "id"
2) "1"

3. 判断字段是否存在

HEXISTS key field
存在返回1,不存在返回0.

127.0.0.1:6379> hexists user id
(integer) 1
127.0.0.1:6379> hexists user name
(integer) 0
127.0.0.1:6379> hgetall user
1) "id"
2) "1"

4. 设置多个字段/获取多个字段

设置多个字段:HMSET key field value [field value …]
获取多个字段:HMGET key field [field …]

127.0.0.1:6379> hgetall user
1) "id"
2) "1"
127.0.0.1:6379> hmset user name zhangsan address xian score 99
OK
127.0.0.1:6379> hmget user id name
1) "1"
2) "zhangsan"
127.0.0.1:6379> hmget user id name address score
1) "1"
2) "zhangsan"
3) "xian"
4) "99"
127.0.0.1:6379> hgetall user
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"

5. 只获取字段名/字段值

获取字段名:HKEYS key
获取字段值:HVALS key

127.0.0.1:6379> hgetall user
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "address"
4) "score"
127.0.0.1:6379> hvals user
1) "1"
2) "zhangsan"
3) "xian"
4) "99"
127.0.0.1:6379> hvals person
(empty list or set)
127.0.0.1:6379> hkeys person
(empty list or set)

6. 获取某个key内全部数量

HLEN key

127.0.0.1:6379> hgetall user
1) "id"
2) "1"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"
127.0.0.1:6379> hlen user
(integer) 4

7. 增加数字

HINCRBY key field increment

127.0.0.1:6379> hget user id
"1"
127.0.0.1:6379> hincrby user id 5
(integer) 6
127.0.0.1:6379> hget user id
"6"

8. 删除key内字段

HDEL key field

127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "address"
6) "xian"
7) "score"
8) "99"
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "address"
4) "score"
127.0.0.1:6379> hdel user address
(integer) 1
127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "score"
6) "99"
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "score"

9. 字段不存在时赋值

HSETNX key field value

127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "score"
127.0.0.1:6379> hsetnx user address xian
(integer) 1
127.0.0.1:6379> hkeys user
1) "id"
2) "name"
3) "score"
4) "address"
127.0.0.1:6379> hvals user
1) "6"
2) "zhangsan"
3) "99"
4) "xian"
127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "score"
6) "99"
7) "address"
8) "xian"
127.0.0.1:6379> hsetnx user score 98
(integer) 0
127.0.0.1:6379> hgetall user
1) "id"
2) "6"
3) "name"
4) "zhangsan"
5) "score"
6) "99"
7) "address"
8) "xian"

10. 应用场景

  • 购物车

用户id为100的用户购物车,买了商品item1 1件, 商品item2 1件,然后增加商品item2 到4件,查看用户总共买了多少商品,每个商品分别是多少。

127.0.0.1:6379> hset shopcar:uid100 item1 1
(integer) 1
127.0.0.1:6379> hset shopcar:uid100 item2 1
(integer) 1
127.0.0.1:6379> hincrby shopcar:uid100 item2 3
(integer) 4
127.0.0.1:6379> hlen shopcar:uid100
(integer) 2
127.0.0.1:6379> hgetall shopcar:uid100
1) "item1"
2) "1"
3) "item2"
4) "4"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Redis之hash类型 的相关文章

  • 有没有办法让特定的key在集群模式下定位到特定的redis实例上?

    我想让我的多锁位于不同的redis实例上 我发现redission可以指定一个实例来执行命令 但是如果该命令与key相关 则指定的实例会将命令传输到另一个实例 你能给我一些建议吗 你可以 但这并不是微不足道的 首先 Redis 在键中使用大
  • redis dump.rdb / 保存小文件

    Context 我正在使用redis 数据库小于 100 MB 但是 我想进行每日备份 我也在 Ubuntu Server 12 04 上运行 当输入 redis cli save 我不知道 dump rdb 保存到哪里 因为 redis
  • Scala 使用的 Redis 客户端库建议

    我正在计划使用 Scala 中的 Redis 实例进行一些工作 并正在寻找有关使用哪些客户端库的建议 理想情况下 如果存在一个好的库 我希望有一个为 Scala 而不是 Java 设计的库 但如果现在这是更好的方法 那么仅使用 Java 客
  • Redis+Docker+Django - 错误 111 连接被拒绝

    我正在尝试使用 Redis 作为使用 Docker Compose 的 Django 项目的 Celery 代理 我无法弄清楚我到底做错了什么 但尽管控制台日志消息告诉我 Redis 正在运行并接受连接 事实上 当我这样做时 docker
  • 使用redis进行树形数据结构

    我需要为基于树的键值开发一个缓存系统 与Windows注册表编辑器非常相似 其中缓存键是字符串 表示树中到值的路径 可以是原始类型 int string bool double 等 或子树本身 例如 key root x y z w val
  • 如何将“.csv”数据文件导入Redis数据库

    如何将 csv 数据文件导入 Redis 数据库 csv 文件中包含 id 时间 纬度 经度 列 您能否向我建议导入 CSV 文件并能够执行空间查询的最佳方法 这是一个非常广泛的问题 因为我们不知道您想要什么数据结构 您期望什么查询等等 为
  • 节点应用程序之间共享会话?

    我目前有两个独立的节点应用程序在两个不同的端口上运行 但共享相同的后端数据存储 我需要在两个应用程序之间共享用户会话 以便当用户通过一个应用程序登录时 他们的会话可用 并且他们似乎已登录到另一个应用程序 在本例中 它是一个面向公众的网站和一
  • 在 Spring 4 中干掉通用的 RedisTemplate

    我读到你可以拥有 Autowired从 Spring 4 开始泛型 这太棒了 我有一个摘要RedisService我想参加的课程 Autowired一个通用的 RestTemplate 如下所示 public abstract class
  • 当 Jedis 与 Spring Data 一起使用时,为什么数据会以奇怪的键存储在 Redis 中?

    我将 Spring Data Redis 与 Jedis 一起使用 我正在尝试存储带有密钥的哈希值vc list id 我能够成功插入到redis 但是 当我使用 redis cli 检查密钥时 我没有看到密钥vc 501381 相反我看到
  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • 超出 Redis 连接/缓冲区大小限制

    在对我们的应用程序服务器进行压力测试时 我们从 Redis 中得到以下异常 ServiceStack Redis RedisException 无法连接到 redis host 6379 处的 redis 实例 gt System Net
  • 没有适用于机器人的 Laravel 会话

    我在大型 Laravel 项目和 Redis 存储方面遇到问题 我们将会话存储在 Redis 中 我们已经有 28GB 的 RAM 然而 它的运行速度仍然相对较快 达到了极限 因为我们有来自搜索引擎机器人的大量点击 每天超过 250 000
  • 如何在Redis中正确存储图片?

    决定将图像存储在Redis中 如何正确执行 现在我这样做 redis gt set image path here is the base64 image code 我不确定这是否正常 将图片存储在Redis中是完全可以的 Redis 键和
  • 批量将Dictionary中的数据设置到Redis中

    我正在使用 StackExchange Redis DB 插入键值对字典Batch如下 private static StackExchange Redis IDatabase database public void SetAll
  • 如何通过ARM模板输出返回Redis的primaryKey?

    我正在尝试借助下面列出的 ARM 模板来部署 Redis 然后返回其主密钥 Azure 门户中 Redis 的 访问密钥 gt 主 下可用的秘密字符串 但是 我从管道 AzureResourceManagerTemplateDeployme
  • nginx/uwsgi 服务器的持久内存中 Python 对象

    我怀疑这是否可能 但这是问题和提出的解决方案 提出的解决方案的可行性是这个问题的对象 我有一些需要可用于所有请求的 全局数据 我将这些数据保存到 Riak 并使用 Redis 作为缓存层以提高访问速度 目前 数据被分为约 30 个逻辑块 每
  • Redis - 错误:值不是有效的浮点数

    我在 Redis 中有一个排序集 我试图通过在Python代码中使用zincrby来更新特定元素的计数器值 例如 conn zincrby usersSet float 1 user1 但它显示错误为 错误 值不是有效的浮点数 我在 cli
  • Redis如何存储关联数组?设置、散列还是列表?

    我对 Redis 的所有可用存储选项有点困惑 我想做一些简单的事情 并且不想过度设计它 我正在与phpredis and Redis v2 8 6 我有一个需要存储的简单关联数组 我还需要能够通过其键检索项目并循环遍历所有项目 a arra
  • Spring-boot中将redis-cache反序列化为对象的问题

    我在 Client 类中使用 JsonNode 来处理 MySQL 8 数据库中 JSON 类型的字段 即使对于 API 请求 它也能很好地工作 但是当我使用 Redis 启用缓存 我确实需要它 时 我注意到 Redis 无法序列化 Jso
  • 将redis数据移至MySQL的更快方法

    我们拥有庞大的购物和产品交易系统 我们在 MySQL 方面遇到了很多问题 因此经过几次研发后 我们计划使用 Redis 并开始将 Redis 集成到我们的系统中 继之前直接访问数据库之后 现在我们已经移动了Redis系统 用户购物车详情 关

随机推荐

  • PostgreSQL导出表结构

    Windows PgAdmin 环境变量配置 PG HOME D Program Files PostgreSQL 9 5 Path PG HOME bin PG HOME lib PG HOME data 最后追加 查看配置是否成功 出现
  • 编写 EL 自定义函数 的方法

    一 利用EL表达式调用普通Java类中的静态方法 1 编写一个java类 并编写一个静态方法 如下所示 public class ElDemo 静态方法 将小写转换为大写 public static String convert Strin
  • 【PAT乙级】锤子剪刀布

    题目描述 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5 即双方交锋的次数 随
  • numpy基本教程

    此处所指的数组就是numpy的ndarray 1 numpy加载npz文件 变量filename存放npz文件的地址 加载文件 data seq np load graph signal matrix filename data np lo
  • CSS选择器汇总

    CSS选择器汇总 选择器选择所有元素 选择器也可以选择另一个元素内的所有元素
  • solidworks启动慢的原因在这里

    你打开SOLIDWOKRS需要多长时间 有的人可能是十秒左右SOLIDWOKRS 有的人可能要等上一两分钟才能看到SOLIDWORKS的界面 那么我们今天抛开硬件的差异 主要针对软件和系统环境的设置帮助大家加快打开SOLIDWORKS的速度
  • HBase的Compact和Split源码分析与应用--基于0.94.5

    HBase的Compact和Split源码分析与应用 基于0 94 5 经过对比 0 94 5以后版本主要过程基本类似 有些新功能和细节增加 一 Compact 2 1 Compact主要来源 来自四个方面 1 Memstoreflush时
  • 数组、字符串、Math常用的API

    数组的API 方法 用法 concat 连接两个或多个数组 并返回已连接数组的副本 原数组不变 join 将数组的所有元素连接成一个字符串 返回字符串 原数组不变 toString 将数组转换为字符串 并返回结果 from 从对象创建数组
  • PID控制算法01

    PID控制算法 PID控制算法公式 原理 参数作用 PID算法及改进 两个基本类型 位置型PID控制 增量型PID控制 积分环节改进的PID控制 积分分离的PID控制 变速积分的PID控制 抗积分饱和的PID控制 微分环节改进的PID控制
  • 数据结构 --- 数组

    1 求数组中第二大的数 1 定义两个变量 2 const int MINNUMBER 32767 3 int find sec max int data int count 4 5 int maxnumber data 0 6 int se
  • 软件测试中动态测试与静态测试的区别

    这里讲一下软件测试中动态测试与静态测试的区别 静态测试主要包括 1 代码检查 代码会审 代码走查 桌面检查 2 静态结构分析 3 代码质量度量 动态测试主要包括 1 黑盒测试 又称功能测试 这种方法把被测软件看成黑盒 在不考虑软件内部结构和
  • 2023年深圳杯数学建模A题影响城市居民身体健康的因素分析

    2023年深圳杯数学建模 A题 影响城市居民身体健康的因素分析 原题再现 以心脑血管疾病 糖尿病 恶性肿瘤以及慢性阻塞性肺病为代表的慢性非传染性疾病 以下简称慢性病 已经成为影响我国居民身体健康的重要问题 随着人们生活方式的改变 慢性病的患
  • Python中的常见问题与解决方案

    机器学习作为当今最热门的领域之一 为数据科学和人工智能带来了巨大的突破和进步 然而 在Python中进行机器学习和深度学习开发时 我们可能会遇到一些常见的问题 本文将分享一些这些常见问题 并给出解决方案 帮助您更好地进行机器学习和深度学习的
  • js 正则exec()函数在循环中使用

    在每次循环中 需要把正则表达式的lastIndex重置为0 如 reg lastIndex 0
  • Swift Codable 自定义默认值解码

    前言 最近我们公司服务端修改了某个接口返回数据结构 减少了一些字段 导致iOS这边codeable解码失败 获取不到正确的数据信息 相关业务无法完成 不想使用可选值类型 可以使用属性包装器实现对基础类型的包装 decode解析时给定默认值
  • 编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议101~109)

    我命由我不由天 哪吒 建议101 注意Class类的特殊性 建议102 适时选择getDeclaredXXX和getXXX 建议103 反射访问属性或方法时Accessible设置为true 建议104 使用forName动态加载类文件 建
  • CSS中设置表格TD宽度的问题

    CSS布局 表格宽度不听使唤的实例 想把表格第一例宽度设为20 其他自适应 但CSS中宽度是等宽的 只设这一行也不起作用 但是在实际应用中总是等宽处理 并不按照样式来走 XML HTML代码
  • Linux 添加ssh公钥 实现免密认证

    ssh 无密码登录要使用公钥与私钥 linux下可以用用ssh keygen生成公钥 私钥对 1 添加A服务器公钥到B服务器 2 到A服务器输入命令ssh keygen 一路回车 3 找到A服务器的 root ssh id rsa pub
  • Windows环境下3分钟就能安装一个Ubuntu

    作为一名IT人士 如果你手上没有一个私人的Linux环境是说不过去的 单独购买云服务器来搭建代价太高 用磁盘分区装双系统步骤也繁琐 那怎样在3分钟内快速搭建出一个私人的Linux环境呢 一 在Windows系统下 装Linux的常用方法是
  • Redis之hash类型

    文章目录 Redis之hash类型 1 设置一个字段 获取一个字段 2 获取所有字段值 3 判断字段是否存在 4 设置多个字段 获取多个字段 5 只获取字段名 字段值 6 获取某个key内全部数量 7 增加数字 8 删除key内字段 9 字