当前位置: 首页 > news >正文

redis详细教程(3.hash和set类型)

hash

Redis中的Hash是一种数据结构,用于存储键值对集合。在Redis中,Hash非常适合表示对象,其中对象的每个字段都对应一个键值对。以下是关于Redis中Hash的详细讲解:

特点:

1. 键值对集合:Hash是一个包含字段和值的映射表,字段和值都是字符串类型。
2. 存储结构:Hash内部实现为一个字典,当数据量较小时,使用ziplist(压缩列表)存储,当数据量较大时,会使用hashtable(哈希表)存储。
3. 动态字段:Hash可以动态地添加或删除字段,非常灵活。
4. 内存占用:相较于使用多个String键存储对象,Hash可以更节省内存。

常用命令

以下是一些Redis中操作Hash的常用命令:

1. HSET:设置Hash中的字段值,HGET:获取Hash中指定字段的值,如下图:

2. HMSET:同时设置多个字段值,HMGET:同时获取多个字段的值。

3. HGETALL:获取Hash中所有的字段和值。

4. HDEL:删除Hash中的指定字段,HLEN:获取Hash中字段的数量:


5. HEXISTS:判断Hash中是否存在指定字段。

Hash非常适合存储对象,如用户信息、商品信息等,可以将数据库中的行数据存储在Hash中,以减少数据库访问次数。虽然Hash可以节省内存,但当数据量非常大时,仍然需要注意内存占用。

set

Redis中的Set是一种无序集合数据结构,它存储了多个字符串元素,这些元素是唯一的,即集合中不允许有重复的元素。

特点

1. 唯一性:Set中的元素都是唯一的,重复添加相同的元素不会影响集合的大小。
2. 无序性:Set中的元素是无序的,这意味着元素的位置不是固定的,每次获取元素时顺序可能不同。
3. 元素类型:Set中的元素只能是字符串类型,但Redis内部会处理整数编码的字符串,以便优化存储和性能。
4. 内部实现:当Set的元素数量较少时,Redis使用intset(整数集合)作为内部实现,这样可以节省内存;当元素数量较多或元素不是整数时,Redis使用hashtable(哈希表)。

常用命令

以下是Redis中操作Set的一些常用命令:

SADD:向集合中添加一个或多个成员,SMEMBERS:获取集合中的所有成员。

SISMEMBER:判断一个成员是否存在于集合中。

    
SREM:从集合中移除一个或多个成员, SCARD:获取集合的成员数量。

    
SPOP:随机移除并返回集合中的一个成员。


 SRANDMEMBER:随机返回集合中的一个或多个成员,但不从集合中移除。


SMOVE:将一个成员从一个集合移动到另一个集合。

    
SDIFF:返回多个集合的差集。

 SINTER:返回多个集合的交集。

SUNION:返回多个集合的并集。

当Set存储大量数据时,需要注意内存使用情况,虽然Set内部可以优化整数类型的存储,但通常元素都是字符串类型。


http://www.mrgr.cn/news/60010.html

相关文章:

  • python笔记:@property
  • 怎么提取pdf的某一页?批量提取pdf的某一页的简单方法
  • ICP之点云特征计算
  • 【AI探索实践】使用Docker部署ChatGPT Next Web个人智能助手
  • 搭建 mongodb 副本集,很详细
  • sql server 之动态sql
  • 计算机网络——有连接传输层协议TCP
  • java平方根计算 C语言指针变量
  • UICC运营商特权与eSIM配置文件冲突问题
  • 系统滴答定时器
  • 构成正方形的数量
  • 基于SSM+微信小程序的跑腿平台管理系统(跑腿3)
  • 进程间通信(管道)
  • 【已解决,含泪总结】非root权限在服务器上配置python和torch环境,代码最终成功训练(一)
  • Ubuntu22.04编译安装实时内核
  • 2-135 基于matlab的有限差分法计算电位分布
  • 1025. 除数博弈
  • maven之pom.xml文件解读
  • flink1.17.2安装和使用
  • 基于协同过滤算法的旅游网站推荐系统
  • iTerm2 保持SSH远程连接
  • PyQt入门指南二十九 QListView列表视图组件
  • leetcode day7 442
  • 揭秘:如何用Puppeteer和BrowserWS解锁网站性能的隐秘角落
  • 【CTF】 文件包含漏洞——data伪协议 【详】
  • python之多任务爬虫——线程、进程、协程的介绍与使用(16)