当前位置: 首页 > 编程日记 > 正文

Redis初学:8(Hash类型)

Hash(哈希)类型

简介

Redis中的hash是一个键值对集合。它是一个String类型的field和value的映射表,所以它特别适合用来存储对象。
如下图:
在这里插入图片描述

Redis中的hash类似于Java中的Map<String,Object>。

底层数据结构

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

  • ziplist(压缩列表):当哈希类型元素个数小于hash-max-ziplist-entries 配置(默认512个)、同时所有值都小于hash-max-ziplist-value配置(默认64 字节)时,Redis会使用ziplist作为哈希的内部实现,ziplist使用更加紧凑的结构实现多个元素的连续存储,所以在节省内存方面比hashtable更加优秀。

  • hashtable(哈希表):当哈希类型无法满足ziplist的条件时,Redis会使用hashtable作为哈希的内部实现,因为此时ziplist的读写效率会下降,而 hashtable的读写时间复杂度为O(1)。

常用命令

hset

给集合key里面的field赋值value
用法:

hset <key> <field> <value>

如下图:
在这里插入图片描述

hget

取出集合key里面的值value
用法:

hget <key> <field>

如下图:
在这里插入图片描述

hmset

批量设置hash的值
用法:

hmset <key> <field1> <value1> <field2> <value2>...

如下图:
在这里插入图片描述

hexists

判断集合key里面是否存在field这个值。
用法:

hexists <key> <field>

如下图:
在这里插入图片描述

hkeys

列出集合key中的所有field。
用法:

hkeys <key>

如下图:
在这里插入图片描述

hvals

查看集合key里面的所有值value。
用法:

hvals <key>

如下图:
在这里插入图片描述

hincrby

给集合key中field的值value进行加减运算操作,并返回运算后的值。
用法:

hincrby <key> <field> <要进行加减的值>

如下图:
在这里插入图片描述

hsetnx

给集合key中的field赋值新的值value,当且仅当这个field原来不存在的时候。
用法:

hsetnx <key> <field> <value>

如下图:
在这里插入图片描述

相关文章:

在JLabel上显示图片,并且图片自适应JLabel的大小

本文转载地址&#xff1a; http://blog.csdn.net/xiaoliangmeiny/article/details/7060250 在写《Core Java》上的示例代码时&#xff0c;其中有一个FileChooserTest是打开一张图片&#xff0c;并在Label上显示出来&#xff0c;但是这个示例程序有缺点&#xff0c;由于窗口的大…

适合编程的字体

编程字体从美观和易辩上来说&#xff0c;Deja Vu 是我最喜欢的免费字体家族之一&#xff0c;基于Vera字体家族。 非常容易辨别小写字母L&#xff0c;小写字母I和数字1&#xff1b;字母o&#xff0c;O和数字0. 还有几款比较受欢迎的字体&#xff0c;列在下面&#xff0c;挑选…

Blender和Substance Painter复古相机创作学习教程

时长2h 30m 1280X720 MP4 大小解压后&#xff1a;2G 含课程文件 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; Blender 3D和Substance Painter中的复古相机创作 课程获取&#xff1a;Blender和Substance Painter复古相机创作学习教程-云…

20160203.CCPP体系详解(0013天)

程序片段(01):数组.c02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h>//01.采用容器结构存储数据的要点: // 1.必须为每个数据分配独立的存储空间 // 2.必须为每个数据分配独立的标识符(变量名称) //02.C语言之C99语法的…

Redis初学:9(Zset类型)

Zset&#xff08;有序集合&#xff09;类型 简介 Redis里面的有序集合Zset和集合Set非常相似&#xff0c;都是一个没有重复元素的字符串集合。 不同之处是有序集合Zset里面的每个成员都关联了一个评分&#xff08;score&#xff09;&#xff0c;这个score被用来按照从最低分到…

QQ和新浪微博登陆第三方的简单实现

一、微博登陆第三方 0、去开发平台完成开发者认证&#xff1a;http://open.weibo.com/developers/basicinfo 创建一个示例应用&#xff0c;获取APPKey 1、登陆有两种方式&#xff1a;jshtml和WBML部署。以jshtml为例&#xff0c;申请到APPKey之后&#xff0c;引入js,要替换掉ap…

matlab 取消figure显示时在屏幕最前

matlab 取消figure显示时在屏幕最前 matlab 取消figure显示时在屏幕最上层。 matlab运行代码或调试代码时&#xff0c;如果要显示图片figure或者画plot等&#xff0c;如果用的代码不合适&#xff0c; 会使得figure获取屏幕焦点&#xff0c;跑到屏幕最上方。如果跑代码的同时…

使用Blender Houdini轻松学习FX特效

大小&#xff1a;1G 含课程文件 时长1h 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 使用Blender & Houdini学习轻松的FX 信息: 使用Houdini和Blender轻松制作逼真的外汇模拟 Learn Easy FX with Blender & Houdin…

angular初步认识一

最近比较流行MVC前端框架开发&#xff0c;最近研究了一个框架AngularJS框架 不说那么多&#xff0c;先上例子&#xff0c;我是个代码控 <!DOCTYPE html> <html lang"en" ng-app"myApp"> <head><meta charset"UTF-8"><…

Redis初学:11(Redis的配置文件)

Redis的配置文件 Units单位 配置大小单位,开头定义了一些基本的度量单位&#xff0c;只支持bytes&#xff0c;不支持bit。 大小写不敏感&#xff0c;可以用大写也可以用小写。 Includes包含 类似jsp中的include&#xff0c;多实例的情况可以把公用的配置文件提取出来。 Ne…

目标跟踪之卡尔曼滤波---理解Kalman滤波的使用

http://www.cnblogs.com/jcchen1987/p/4371439.html转载于:https://www.cnblogs.com/pengkunfan/p/4372647.html

为什么对高斯分布的方差的极大似然估计是有偏的?

本文要证明为什么对高斯分布的方差的极大似然估计是有偏的。同时&#xff0c;也说明为什么求样本方差时&#xff0c;分母是N-1而不是N。 首先&#xff0c;明白两点&#xff0c;&#xff08;1&#xff09;极大似然法得到的高斯方差是什么形式&#xff08;2&#xff09;什么是有…

使用Blender中的几何节点创建程序对象

大小解压后&#xff1a;2.4G 持续时间3h 30m 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 使用Blender中的几何节点按程序创建对象 信息: 使用Blender中的几何节点按程序创建对象 开始在Blender中使用非破坏性技术和几何节…

Redis初学:14(Redis中的事务)

Redis中的事务 Redis的事务定义 Redis事务是一个单独的隔离操作&#xff1a;事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中&#xff0c;不会被其他客户端发送来的命令请求所打断。 Redis事务的主要作用就是串联多个命令防止别的命令插队。 Redis中的事务操…

接口两种实现方式

以前在用到接口时&#xff0c;从来没注意到接口分为隐式实现与显示实现。昨天在浏览博客时看到相关内容&#xff0c;现在根据自己的理解记录一下&#xff0c;方便日后碰到的时候温习温习。 通俗的来讲&#xff0c;“显示接口实现”就是使用接口名称作为方法名的前缀;而传统的实…

Android程序如何在代码中改变图片原有的颜色

最近一边找工作一边完善之前的项目。之前安卓初中级的项目是模仿酷狗音乐播放器的。下载一个apk文件&#xff0c;改后缀&#xff0c;解压&#xff0c;然后根据官方应用的布局&#xff0c;用得到的图片照着做出来。记得酷狗首页有好几种主要图标&#xff0c;解压后得到的白色加透…

“error : unknown filesystem”的解决办法

解决方法如下&#xff1a;1:首先使用ls命令显示出ubuntu分区的安装信息&#xff1a; 1 grub rescue>ls 一般会罗列出所有磁盘的分区信息&#xff0c;比如&#xff08;hd0,msdos1&#xff09;&#xff08;hd0,msdos2&#xff09;&#xff08;hd0,msdos4&#xff09;&#xff…

Blender创建三维教室场景学习教程 3D Classroom Environment Creation in Blender

流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;48.0 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:3.73 GB 含课程文件 |时长:4h 1m 从头到尾在Blender中创建一个完整的3D教室环境&#xff0c;在…

Redis初学16:主从复制

主从复制 简介 主机数据更新后根据配置和策略&#xff0c; 自动同步到备机的master/slaver机制&#xff0c;Master以写为主&#xff0c;Slave以读为主&#xff0c;如下图&#xff1a; 好处&#xff1a; 1.读写分离&#xff0c;性能扩展 2.容灾快速恢复 搭建 我这里准备了三…

UITableView数据的添加、删除、移动

数据的添加、删除4个步骤&#xff1a;1、现在导航视图上面添加一个按钮&#xff0c;可以是系统自带的编辑按钮editButtonItem2、实现方法让将要执行删除添加操作的表视图处于编辑状态3、指定表视图中哪些行可以处于编辑状态&#xff0c;默认所有行都可以进行编辑4、指定编辑样式…

Saltstack 用户管理

最近测试组来了一大波&#xff0c;最为公司测试那必须要有qa环境&#xff0c;测试组老大跟我关系很好&#xff0c;他们组不少人对Linux也很了解&#xff0c;平时弄个东西啥的也能自己搞定&#xff0c;软磨硬泡加上最近真的很忙给他们配置了jenkins和开了qa环境用户权限&#xf…

ubuntu 14.04 双显卡安装NVIDIA GPU驱动+CUDA+编译配置caffe

******************************** 安装ubuntu************************* 1.在bios里设置使用集成显卡 2.安装ubuntu 14.04&#xff0c;不要联网安装&#xff0c;否则很慢 *********************************安装 GPU驱动********************** 3.去NVIDIA官网下载run格式…

虚幻引擎虚拟现实开发基础学习教程

流派:电子学习| MP4 |视频:h264&#xff0c;1280720 |音频:AAC&#xff0c;44.1 KHz 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09;|大小解压后:3.93 GB |时长:5h 15m 了解如何使用Oculus Quest 2的蓝图在虚幻引擎4中从头开始构建基本的虚拟…

更换AppleWWDRCA.cer证书

从2月14号开始&#xff0c;上传AppStore时可能会碰到这个问题&#xff1a; Failed to locate or generate matching signing assets Xcode attempted to locate or generate matching signing assets and failed to do so because of the following issues. Missing iOS Distri…

Redis初学17:集群

集群 简介 Redis 集群实现了对Redis的水平扩容&#xff0c;即启动 N 个 redis 节点&#xff0c;将整个数据库分布存储在这 N 个节点中&#xff0c;每个节点存储总数据的 1/N 。 Redis 集群通过分区&#xff08;partition&#xff09;来提供一定程度的可用性&#xff08;avail…

怒刷web前端笔试面试题(一)

2019独角兽企业重金招聘Python工程师标准>>> 1.有这么一段HTML&#xff0c;请挑毛病&#xff1a; <P> 哥写的不是HTML&#xff0c;是寂寞。<br><br> 我说&#xff1a;<br>不要迷恋哥&#xff0c;哥只是一个传说 考点1&#xff1a;html和 …

libcudart.so.6.5 cannot open shared object file: no such file or directory

在matlab中运行程序是可能出现libcudart.so.6.5 libcublas.so.6.5 libcurand.so.6.5 等一系列libcu*.so.版本号 找不到的问题。 解决方案是在/usr/local/cuda-版本号/ 目录下搜索到程序找不到的那个文件&#xff0c;然后做一个软连接到matlab目录。 以找不到libcudart.so.6.…

Python中完整的机器学习数据科学课程

学习每个机器学习模型背后的数学&#xff0c;然后用Python实现它 你会学到: 开发机器学习模型 创建机器学习模型的模板 学习每个机器学习模型背后的数学 要求: Python或任何编程语言的基础 时长:8h 15m |视频:. MP4&#xff0c;1280720 30 fps |音频:AAC&#xff0c;44.1 kHz…

Android 高清加载巨图方案 拒绝压缩图片

Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处&#xff1a; http://blog.csdn.net/lmj623565791/article/details/49300989&#xff1b; 本文出自:【张鸿洋的博客】 一、概述 距离上一篇博客有段时间没更新了&#xff0c;主要是最近有些私事导致的&#xff0c;那么就先…

Docker初学1:初识Docker

前言&#xff1a;本博客内容是对【狂神说Java】中的Docker教程学习过程中的记录与总结 Docker的历史 Docker公司 Docker 公司位于旧金山&#xff0c;由法裔美籍开发者和企业家 Solumon Hykes 创立&#xff0c;其标志如下图所示。 Docker 公司起初是一家名为 dotCloud 的平台即…