redis数据类型(三)hash类型
2024-08-25 10:48:22
一、hash类型
hash是一个string类型的field和value的映射表。添加,删除操作都是O(1)(平均)。
hash特别适合用于存储对象。相对于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新建一个hash对象时开始是用 zipmap(又称为 small hash)来存储的。这个 zipmap 其实并不是hashtable,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据存储开销。尽管zipmap的添加,删除,查找都是 O(n),但是由于一般对象的field 数量都不太多。所以使用zipmap也是很快的,也就是说添加删除平均还是O(1)。如果field 或者 value的大小超出一定限制后,redis会在内部自动将zipmap替换成正常的hash实现.
这个限制可以在配置文件中指定。
hash-max-zipmap-entries 64 #配置字段最多 64 个
hash-max-zipmap-value 512 #配置 value 最大为 512 字节
二、hash的基本操作
- hset key field value 设置hash field为指定值,如果key不存在,则创建,存在则覆盖.
- hget key field 获取指定的hash field。
- hmget key filed1....fieldN 获取全部指定的hash filed。
- hmset key filed1 value1 ...... filedN valueN 同时设置hash的多个field。
- hincrby key field integer 将指定的hashfiled 加上指定值。成功返回hashfiled变更后的值。
- hexists key field 检测指定field是否存在。存在返回1,不存在返回0.
- hdel key field 删除指定的hash field。 成功返回1,失败返回0.
- hlen key 返回指定hash的field数量。
- hkeys key 返回hash的所有field。
- hvals key 返回hash的所有value。
- hgetall 返回hash的所有filed和value。
- hsetnx key filed value 添加一个VALUE到HASH STORE中,如果key存在,则失败。
- hincrbyfloat key field float 根据HASH表的KEY,为KEY对应的VALUE自增参数VALUE。浮点型。
最新文章
- java:集合的自定义多重排序
- Tomcat启动服务报错:Unknown version string [3.1]. Default version will be used.
- 【翻译十七】java-并发之高性能对象
- Java学习笔记(三)——运算符
- jquery.qrcode.js 插件生成二维码
- 免费微信公众号专用h5在线电影票API
- windows 下使用免安裝版MySql5.5
- flask中的request.form对象方法
- ubuntu下安装myeclipse
- RabbitMQ-从基础到实战(3)— 消息的交换
- ansible学习基础知识和模块(一)
- abap 变量检查
- puts方法要点
- SQL Server数据库(时间戳timestamp)类型 (转载)
- php实现单点登录,顶级域名与子域名间共享Cookie实现单点登录原理
- C语言结构体在内存中的存储情况探究------内存对齐
- 语义化的HTML及其目的
- 【MySQL数据库权限】RDS for MySQL创建高权限账号
- [原创] css中的绝对定位和相对定位
- PAT1072. Gas Station (30)
热门文章
- Tempdb--TempDB Basic
- Linux带有时间控制的多进程bash脚本
- Android实现表单提交,webapi接收
- LightOJ 1138 Trailing Zeroes (III)(二分 + 思维)
- 批判“await使用中的阻塞和并发”——对asyc/await这对基友的误会和更正
- Could not find any resources for the specified culture or the neutral culture
- Lock的await/singal 和 Object的wait/notify 的区别
- ubuntu emacs的安装
- RabbitMq初探——用队列实现RPC
- python网络编程--线程(锁,GIL锁,守护线程)