Redis(三)数据类型hash

news/2024/11/7 10:53:01/
一、简介

 1.Redis hash是一个键值对集合

 2.Redis hash 是一个string类型的filed 和 value 的映射表,hash特别适合用于存储对象。类似java里面的Map<String,Object>。

二、常用命令

  hset <key> <field> <value>  给key集合中的<field>键赋值<value>

  hget <key> <field>  从key集合<field> 取出value

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

 hmset <key> <field1> <value1> <field2> <value2> ... 批量设置hash值

127.0.0.1:6379> hmset user:1002 id 2 name lisi
OK
127.0.0.1:6379> hget user:1002 id
"2"

 hexists <key> <field>  查看hash表key中,给定域field是否存在

127.0.0.1:6379> hexists user:1002 id
(integer) 1
127.0.0.1:6379> hexists user:1002 age
(integer) 0

 hkeys <key> 列出该hash集合的所有field

127.0.0.1:6379> hkeys user:1002
1) "id"
2) "name"

 hvals <key> 列出该hash集合的所有value

127.0.0.1:6379> hvals user:1002
1) "2"
2) "lisi"

 hincrby <key> <field> <increment> 为哈希表key中的域field的值加上增量increment 

127.0.0.1:6379> hincrby user:1002 age 2
(integer) 22
127.0.0.1:6379> hvals user:1002
1) "2"
2) "lisi"
3) "22"

 hsetnx <key> <field> <value> 将哈希表key中的域field 的值设为value,当且仅当域field不存在

127.0.0.1:6379> hsetnx user:1002 age 40
(integer) 0
127.0.0.1:6379> hsetnx user:1002 gender 1
(integer) 1
127.0.0.1:6379> hvals user:1002
1) "2"
2) "lisi"
3) "22"
4) "1"
三、数据结构

       Hash类型对应的数据结构是两种,ziplist(压缩列表),hashtable(哈希表),当field-value ,长度较短且个数较少时,使用ziplist,否则使用hashtable。


http://www.ppmy.cn/news/11505.html

相关文章

【手写 Vue2.x 源码】第十八篇 - 根据 render 函数,生成 vnode

一&#xff0c;前言 上篇&#xff0c;介绍了render 函数的生成&#xff0c;主要涉及以下两点&#xff1a; 使用 with 对生成的 code 进行一次包装将包装后的完整 code 字符串&#xff0c;通过 new Function 输出为 render 函数 本篇&#xff0c;根据 render 函数&#xff0c…

Leetcode:98. 验证二叉搜索树(C++)

目录 问题描述&#xff1a; 实现代码与解析&#xff1a; 递归&#xff1a; 原理思路&#xff1a; 迭代&#xff08;中序&#xff09;&#xff1a; 思路原理&#xff1a; 问题描述&#xff1a; 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。…

Trime同文输入法JNI加载过程

Trime同文输入法JNI加载过程JNI初始化顺序第一步、加载librime_jni.so库第二步、自动注册机制第三步、正式加载librime_jni.so库插入一个话题、简化打印记录第四步、执行Rime.java中的init()方法LoadModules()LoadModule()rime_core_initialize()调用顺序Class不是class关键字&…

一网打尽链表的经典OJ题!链表必考笔试题第二弹

目录 0.前言 1.合并两个排序链表 1.1 实用小妙招 1.2代码书写 2.链表分割 3.链表的回文结构 4.相交链表 4.1 实用小妙招&#xff08;假定指针法&#xff09; 4.2代码书写 5. 复制带随机指针的链表 0.前言 本文代码及分析图片资源都以上传Gitee&#xff0c;可自取&a…

SpringBoot+Vue项目在线拍卖系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

整理了一周近万字讲解linux基础开发工具vim,gdb,gcc,yum等的使用

文章目录 前言一、yum的使用二、vim的使用三 . gcc/g的使用四 . gdb的使用总结前言 想用linux开发一些软件等必须要会的几种开发工具是必不可少的&#xff0c;在yum vim gcc gdb中指令繁杂的是vim和gdb这两个工具&#xff0c;至于yum和gcc的指令就比较简单了。 一、yum的使用…

System Description 步骤

纲要&#xff1a; 在有了Composition以后&#xff0c;下一步就是把它分配到ECU里面。 1. Create System Description Import DBC file, select ECUs and CAN Frames under the DBC. Then it will create "SystemDescription.arxml" file. [1] 2. Check the content…

23. 反爬案例:不登录不给,要数据请先登录我的站点

登录之后&#xff0c;可以查看数据&#xff0c;是部分站点常用规则&#xff0c;本篇博客将在爬虫训练场中实现该需求。 文章目录安装必备模块建立 models建立 login_form 表单文件flask_wtf 中 FlaskForm 类建立登录视图函数配置 login.html 页面安装必备模块 实现 Python Fla…