Redis的五种数据类型

Redis五种基本数据类型 五种基本数据类型 redis无论什么数据类型,在数据库中都是以key-value形式保存,并且所有的key(键)都是字符串,所以讨论基础数据结构都是讨论的value值的数据类型 主要包括常见的5种数据类型,分别是:String、List、Set、Zset、Hash。 结构类型 结构存储的值 结构的读写能力 String字符串 可以是字符串、整数或浮点数 对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作; List列表 一个链表,链表上的每个节点都包含一个字符串 阅读详情

Redis 数据类型

Redis支持五种数据类型:

  • string(字符串)
  • hash(哈希)
  • list(列表)
  • set(集合)
  • zset(sorted set:有序集合)

String(字符串)

STRING是redis中最基本的数据类型,redis中的STRING类型是二进制安全的,即它可以包含任何数据,比如一个序列化的对象甚至一个jpg图片,要注意的是redis中的字符串大小上限是512M。

redis 127.0.0.1:6379> SET key "value"
OK
redis 127.0.0.1:6379> GET key
"value"

在以上我们使用了 Redis 的 SET 和 GET 命令。

Hash(哈希)

HASH类似于Java中的Map,是一个键值对集合,在redis中可以用来存储对象。

redis 127.0.0.1:6379> HMSET key field1 "Hello" field2 "World"
"OK"
redis 127.0.0.1:6379> HGET key field1
"Hello"
redis 127.0.0.1:6379> HGET key field2
"World"

我们使用了 Redis HMSET, HGET 命令,HMSET 设置了两个 field=>value 对, HGET 获取对应 field 对应的 value。

每个 hash 可以存储 232 -1 键值对(40多亿)。

List(列表)

LIST是一个简单的字符串列表,按照插入顺序进行排序,我们可以从LIST的头部(LEFT)或者尾部(RIGHT)插入一个元素,也可以从LIST的头部(LEFT)或者尾部(RIGHT)弹出一个元素。

redis 127.0.0.1:6379> lpush key redis
(integer) 1
redis 127.0.0.1:6379> lpush key mongodb
(integer) 2
redis 127.0.0.1:6379> lpush key rabbitmq
(integer) 3
redis 127.0.0.1:6379> lrange key 0 10
1) "rabbitmq"
2) "mongodb"
3) "redis"

列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

Set(集合)

SET是STRING类型的无序集合,不同于LIST,SET中的元素不可以重复。

redis 127.0.0.1:6379> sadd key redis
(integer) 1
redis 127.0.0.1:6379> sadd key mongodb
(integer) 1
redis 127.0.0.1:6379> sadd key rabbitmq
(integer) 1
redis 127.0.0.1:6379> sadd key rabbitmq
(integer) 0
redis 127.0.0.1:6379> smembers key 

1) "redis"
2) "rabbitmq"
3) "mongodb"

以上实例中 rabbitmq 添加了两次,但根据集合内元素的唯一性,第二次插入的元素将被忽略。

集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

zset(sorted set:有序集合)

ZSET和SET一样,也是STRING类型的元素的集合,不同的是ZSET中的每个元素都会关联一个double类型的分数,ZSET中的成员都是唯一的,但是所关联的分数可以重复。

redis 127.0.0.1:6379> zadd key 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd key 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd key 0 rabbitmq
(integer) 1
redis 127.0.0.1:6379> zadd key  0 rabbitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE key 0 1000
1) "mongodb"
2) "rabbitmq"
3) "redis"

各个数据类型应用场景

|类型  | 简介 |特性  |场景  ||--|--|--|--||String(字符串)  | 二进制安全 |可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M  | --- ||Hash(字典)| 键值对集合,即编程语言中的Map类型|适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)|存储、读取、修改用户属性||List(列表)| 链表(双向链表)|增删快,提供了操作某一段元素的API|1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列||Set(集合)| 哈希表实现,元素不重复|1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作|1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐||Sorted Set(有序集合)  | 将Set中的元素增加一个权重参数score,元素按score有序排列|数据插入集合时,已经进行天然排序|1、排行榜 2、带权重的消息队列|

文章参考链接 : (https://www.runoob.com/) https://www.runoob.com/redis/redis-data-types.html

Redis常用的五大数据类型 redis与传统sql数据库的取 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储,它还支持数据的备份,即master-slave模式的数据备份,同样Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 Redis支持的五大数据类型包括String(字符串 用法: 键 值),Hash(哈希 类似Java中的 map 用法: 键 键值对),List(列表 用法:键 集合 不可以重复),Set(集合 用法:... 阅读详情

相关推荐

redis的五种数据类型

(1)Redis(Remote Dictionary Server 远程字段服务)是一个开源的使用ANSI C语言编写、支持网络、科技与内存亦可持久化的日志型、key-value数据库,并提供多种语言的API。(2)Redis是一个key-value存储系统,它支持存储的value类型相对更多,包括string、list、set、zset(sorted set --有序集合)和hash。这些数据结构都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

学Java,找哪吒 6万+

Redis 的五种数据类型及其底层原理

Redis是 key-value结构的数据库。 Redis常用的五种数据类型分别是:String、List、Set、Hash、Zset。 一、Redis五种类型的常用命令 1.1 String String是 redis 最基本的数据类型。一个 key 对应一个value。redis的String可以表示任何数据,比如 jpg图像或者序列化的对象,String的最大值能存储512MB。 常用命令: get、set、incr、decr、mget set:往redis里输入key-value,如:

ZJE 3万+

Android Profiler 帧率优化实战与性能调优

本文详细介绍了使用Android Profiler进行帧率优化与性能调优的实战方法。通过分析主线程状态、FPS曲线和渲染阶段耗时,精准定位卡顿根源,并提供减少过度绘制、优化绘制命令及改善资源使用的具体策略。文章结合电商、游戏等真实案例,帮助开发者有效解决卡顿问题,提升应用流畅度。

palm99的专栏 536

Redis常用的五种数据类型

Redis常用的五种数据类型 String (Key-Value),普通的key/value存储都可以归为此类 Hash(Key-Hash(field,value)) Key仍然是用户ID, value是一个Map 特别适合存储对象 String存对象会带来序列化和反序列化 List key理解为链表名字 作为栈,又可以作为队列 Set key理解为Set名字 string类型的无序集合 zset key理解为zSet名字 一列存 value,一列存顺序

u013905744的专栏 3万+

以LAN8720A为例的以太网硬件设计方案

输入时钟(XTAL1/CLKIN,XTAL2):推荐外加25MHz(性价比较高)晶振为PHY芯片提供时钟,PHY芯片内部PLL将其倍频为50MHz来使用,亦可使用直接使用50MHz晶振。三位MODE通过高低电平组合分别对应以上8种模式 ,包含10M半双工,10M全双工,100M半双工,100M全双工,是否启用自协商协议,CRS是否有效等。VDDCR:1.2V电源,可由芯片内部稳压电源提供,亦可由外部电源提供,由外部电源提供可降低芯片功耗。REF_CLK:参考时钟,由MAC或外部时钟晶振向PHY芯片提供。

weixin_46154042的博客 5882

qt open3dBPA重建

open3d BPA重建

阁楼 516

图解Redis五大数据类型

value类型是<key,value>键值对。如果发生hash冲突,用开放定址法解决,不拉链!与List的类似,只是value不能重复。key值重复,则新值覆盖旧值。

qq_44150915的博客 5098

Creo模型装配总结

creo7.0的零件装配操作方法,建立基准面、新建约束、约束顺序

heda3的博客 1万+

Redis五种数据类型

Redis有五种数据类型:String(字符串)、List(列表)、Hash(散列)、Set(集合)、sortedSet(有序集合)判断某个键是否存在type <key>查看键的类型del <key>删除某个键为键值设置过期时间,单位秒ttl <key>查看还有多久过期,-1表示永不过期,-2表示已过期dbsize查看当前数据库中key的数量flushdb清空当前库flushall通杀全部库。

m0_56341622的博客 2479

独创改进 | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构

独创改进🚀! | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构

Coding... 2211

29、网络支持技术:CDN、覆盖网络与无标度网络解析

本文详细解析了CDN路由方式与性能指标,探讨了覆盖网络与无标度网络的特性及其在云计算和现代网络中的应用。文章分析了CDN的关键技术与挑战,介绍了覆盖网络与小世界网络的基本原理,并深入讨论了无标度网络的构建算法、性能优化策略以及在多个领域的应用案例。最后,文章展望了未来网络技术发展趋势与无标度网络的结合潜力。

night的博客 87

【Redis】五种数据类型及其使用场景

Redis 数据类型 五种类型与类比java的模型 string --> String hash --> Hashmap list --> LinkList set --> HashSet sorted_set --> TreeSet String类型 redis 数据存储格式 redis自身是一个Map类型的存储方式,其中所有的数据都是采用key:value的形式存储 我们讨论的数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串 St

愿万事胜意 5万+

华为od 面试八股文_C++_02_含答案

华为od 面试八股文_C++_02_含答案

MISAYAONE的博客 3120

【深入学习Redis丨第七篇】Redis的五种数据类型详解

Redis支持五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。字符串类型是redis最基础的数据结构,首先键是字符串类型,而且其他几种结构都是在字符串类型基础上构建的,所以字符串类型为其他四种数据结构尊定了基础。字符串类型实际上可以是简单的字符串、复杂的字符串(xml、json)、数字(整数、浮点数)、二进制(图片、音频、视频)。

陈橘又青的博客 1万+

5. SAP UI5 视图控制器(Controller)初探

本教程的前一个步骤也就是第四个步骤,我们了解了 SAP UI5 XML 视图的使用方法。在该步骤里,我们在 XML 视图里声明了一个 Text 控件实例,该控件位于 sap.m 这个命名空间内。 本步骤会继续接触 SAP UI5 MVC 框架中三大基石的另一块:C - Controller,即控制器。 先看看本步骤完成之后,我们得到的 SAP UI5 应用能实现一个什么样的效果。 访问如下 url: http://localhost:8080/webapp/index.html 能看到一个 Say Hell

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4592

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Redis的五种常用数据类型、三种特殊数据类型详解

目录简述Redis五种基本数据类型String字符串常用命令应用场景Hash散列表常用命令使用场景List链表常用命令应用场景Set( 集合)常用命令应用场景SortedSet( 有序集合) zset常用命令介绍应用场景Redis三种特殊的数据类型Geospatial 地理位置命令介绍底层实现原理Hyperloglog 基数统计命令介绍应用场景:适合做页面统计。Bitmap位图场景基本命令应用场景面试题常问的数据类型寄言 简述 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数

weixin_43246215的博客 4万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Redis的五种常用数据类型。

作为一名Java开发人员,我们一定了解数据库MySQL,MySQL 是基于磁盘的关系型数据库,适合存储结构化数据,支持复杂查询和事务,侧重数据持久化与一致性,但速度较慢;所以我们引进了一款非关系型数据库——Redis, Redis 是基于内存的非关系型键值数据库,支持多种数据结构,读写极快,适合缓存、高频操作场景,内存存储为主,持久化是辅助。两者之间经常结合使用(如 Redis 缓存减轻 MySQL 压力)。

2401_85973273的博客 1270

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Redis 五种数据类型的操作命令

Redis 是一个开源的键值存储系统,它支持多种数据结构,每种数据结构都有其特定的用例和底层实现。

weixin_64178283的博客 1748

Redis的五种常用数据类型详解及相关面试问题

Redis的五种常用数据类型详解及相关面试问题

相关项目可以查看https://gitee.com/fan-pl或https://github.com/fpl1116 2039

深入学习Redis——五种常用数据类型

Redis提供的五种核心数据结构绝非简单的数据容器,而是经过精密设计的工程解决方案。它们各自解决了特定场景下的数据建模与操作效率问题,是现代分布式系统架构中不可或缺的组件。 String类型的原子操作特性使其成为高性能计数器和分布式锁的理想选择;Hash类型通过field-value映射为对象存储提供了最优解;List的双端操作能力支撑了消息队列和时间线功能;Set的集合运算为社交关系和数据去重提供了数学基础;ZSet通过score排序机制实现了高效的排行榜和优先级队列。

zyyyyyhhhhh的博客 1449

Redis五种数据类型剖析

字符串是 Redis 中最基本的数据类型,它可以存储任何形式的字符串,包括文本、序列化后的对象、二进制数据等。一个字符串类型的键值对在 Redis 中就是一个简单的 key - value 结构,其中 value 是字符串。哈希类型可以理解为是一个键值对的集合,不过这里的键值对是在一个 Redis 的键下。它非常适合存储对象,将对象的属性作为哈希的字段,属性值作为哈希的字段值。列表是一个字符串元素的有序集合,可以在列表的头部或尾部添加或删除元素。列表中的元素可以重复。

qq_68076599的博客 2008

Redis——五种数据类型

Redis 中的每种数据类型都由特定的数据结构来实现,数据结构为数据类型提供了底层的存储和操作机制。不同的数据类型具有不同的特性和应用场景,数据结构的选择和设计是为了更好地满足这些特性。数据结构是实现数据类型的基础,它们共同构成了 Redis 强大的功能体系,使得 Redis 能够在不同的应用场景中,根据数据的特点和操作需求,选择合适的数据类型和对应的数据结构来高效地处理和管理数据。

2301_81283571的博客 995

redis五种数据类型

消息保序:使用LPUSH+RPOP阻塞读取:使用BRPOP重复消息处理:生产者自行实现全局唯一实例ID消息的可靠性:使用BRPOPLPUSHRedis 常见的五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)及Zset(sorted set:有序集合)。Redis 五种数据类型的应用场景:• String 类型的应用场景:缓存对象、常规计数、分布式锁、共享session信息等。

wt20050610的博客 1037

【Redis】Redis 底层数据结构、五种数据类型

当我们执行命令setbit key 7 0的时候,相当于把字符0x33变成了0x32,这样字符串的值就变成了”22”。而value则比较复杂,为了在同⼀个dict内能够存储不同类型的value,这就需要⼀个通⽤的数据结构,这个通用的数据结构就是robj,全名是redisObject。String的内部存储结构⼀般是sds(Simple Dynamic String,可以动态扩展内存),但是如果⼀个String类型的value的值是数字,那么Redis内部会把它转成long类型来存储,从⽽减少内存的使用。

奶酪的博客 3240
上一篇: 秒杀系统SpringCloud架构选型以及后台代码搭建(二)
下一篇: Redis过期键通知(使用redis来实现延迟通知)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值