Redis的五种基本数据类型

这篇具有很好参考价值的文章主要介绍了Redis的五种基本数据类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

String(字符串)

  • 简介:String 是 Redis 最基础的数据结构类型,它是二进制安全的,可以存储图片
  • 或者序列化的对象,值最大存储为 512M
  • 简单使用举例: set key value、get key等
  • 应用场景:共享 session、分布式锁,计数器、限流。
  • 内部编码有 3 种,int(8字节长整型)/embstr(小于等于 39字节字符串)/ raw(大于 39个字节字符串)

C 语言的字符串是 char[]实现的,而 Redis 使用 SDS(simple dynamic

string) 封装,sds 源码如下:

struct sdshdr{
    unsigned int len; // 标记buf的长度
    unsigned int free; // 标记buf中未使用的元素个数
    char buf[]; // 存放元素的数组
}

Redis 为什么选择 SDS 结构,而 C 语言原生的 char[]不香吗?

举例其中一点,SDS 中,O(1)时间复杂度,就可以获取字符串长度;而 C 字符串,需要遍历整个字符串,时间复杂度为 O(n)

Hash(哈希)

  • 简介:在 Redis 中,哈希类型是指 v(值)本身又是一个键值对(k-v)结构
  • 简单使用举例:hset key field value、hget key field
  • 内部编码:ziplist(压缩列表) 、hashtable(哈希表)
  • 应用场景:缓存用户信息等。
  • 注意点:如果开发使用 hgetall,哈希元素比较多✁话,可能导致 Redis 阻塞, 可以使用 hscan。而如果只是获取部分 field,✁议使用 hmget。

List(列表)

  • 简介:列表(list)类型是用来存储多个有序✁字符串,一个列表最多可以存储
  • 2^32-1 个元素。
  • 简单实用举例: lpush key value [value ...] 、lrange key start end
  • 内部编码:ziplist(压缩列表)、linkedlist(链表)
  • 应用场景: 消息队列,文章列表,

list 应用场景参考以下:文章来源地址https://www.toymoban.com/news/detail-848408.html

lpush + lpop = Stack(栈)
lpush + rpop = Queue(队列)
lpush + ltrim = Capped Collection(有限集合)
lpush + brpop = MQ(消息队列)

Set(集合)

  • 简介:集合(set)类型也是用来保存多个✁字符串元素,但是不允许重复元素
  • 简单使用举例:sadd key element [element ...]、smembers key
  • 内部编码:intset(整数集合)、hashtable(哈希表)
  • 注意点:smembers 和 lrange、hgetall 都属于比较重的命令,如果元素过多存 在阻塞Redis的可能性,可以使用 sscan 来完成。
  • 应用场景: 用户标签,生成随机数抽奖、社交需求。

有序集合(zset)

  • 简介:已排序的字符串集合,同时元素不能重复
  • 简单格式举例:zadd key score member [score member ...],zrank key member
  • 底层内部编码:ziplist(压缩列表)、skiplist(跳跃表)
  • 应用场景:排行榜,社交需求(如用户点赞)。

到了这里,关于Redis的五种基本数据类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis精品小案例:Redis支持五种基本数据类型及案例解析

    Redis支持五种基本数据类型,分别是:string(字符串)、hash(哈希)、list(列表)、set(集合)及zset(sorted set:有序集合)。以下是这些数据类型及其用法的简要说明: String(字符串) : 是Redis最基本的数据类型,你可以理解为与Memcached一模一样的类型,一个key对应一个va

    2024年04月08日
    浏览(41)
  • redis五种数据类型介绍

    、string(字符串)     它师最基本的类型,可以理解为Memcached一模一样的类型,一个key对应一个value。   注意:一个键最大能存储 512MB。   特性:可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M   2、Hash(哈希)   Redis hash 是一个键值(key=value)对集合。

    2024年02月14日
    浏览(45)
  • 源码篇--Redis 五种数据类型

    在 源码篇–Redis 底层数据结构 章节中介绍了redis 底层的数据结构,而底层的数据结构又是为了数据存储而设计的,那么redis 中我们都可以存入哪些数据类型呢? 在redis 中我们可以直接将字符串,作为key 或者value 进行存储,它的底层 就是使用了 SDS 进行实现的; 基于动态字

    2024年01月24日
    浏览(45)
  • redis常用五种数据类型详解

    目录 前言: string 相关命令 内部编码 应用场景 hash 相关命令 内部编码 应用场景 list 相关命令 内部编码 应用场景 set 相关命令 内部编码 应用场景 Zset 相关命令 内部编码 应用场景 渐进式遍历     redis有多种数据类型,常用的有五种,其他都是在特定场景下使用的数据类型。

    2024年02月11日
    浏览(44)
  • Redis对象和五种常用数据类型

    对象分为键对象和值对象 键对象一般是string类型 值对象可以是string,list,set,zset,hash Redis对象和数据结构的关系 键总是一个字符串对象 而值可以是五种中的一种 type 命令 得到的结果就是值的类型 可以用object encoding命令查看编码 list数据类型的编码由linkedlist和ziplist编码合并

    2024年02月12日
    浏览(44)
  • Redis_五种数据类型及操作命令

    5.1.1 简介 String类型在redis中最常见的一种类型 string类型是二制安全的,可以存放字符串、数值、json、图像数据 value存储最大数据量是512M 5.1.2 常用命令 set key value:添加键值对(下面指令可以再后添加) nx:当数据库中key不存在时,可以将key-value添加到数据库 xx: 当数据库key存在

    2024年02月13日
    浏览(41)
  • Redis 五种基本数据结构及基本使用

    2.1 String 的使用 Redis String 一个键对应一个值,并且是二进制安全的,值可以是图片或者序列化后的对象。 一个键最大能存储 512 MB。 2.1.1 set 命令的使用 set key value 重复对同一个键设置值,导致覆盖 15 已经被覆盖了。 set key value nx 当 key 不存在时,返回 OK 表示设置成功 当 k

    2024年02月16日
    浏览(53)
  • Redis五种类型

    应用场景 缓存功能:string 最常用的就是缓存功能,会将一些更新不频繁但是查询频繁的数据缓存起来,以此来减轻 DB 的压力。 底层实现 如果字符串对象保存的是一个字符串值, 并且这个字符串值的长度大于 44 字节, 那么字符串对象将使用一个简单动态字符串(SDS)来保

    2024年02月11日
    浏览(42)
  • Redis实战解读-初识Redis&Redis基本数据类型

    1.什么是Redis ​ Redis是一个速度非常快的非关系型数据库(non-relational database),它可以存储键(key)与五种不同类型的值的映射(mapping),可以将存储在内存的键值对数据持久化到磁盘,可以使用复制特性来扩展读性能,也可以采用客户端分片来扩展写性能。--《Redis实战》 2.Redis与

    2024年02月08日
    浏览(41)
  • Redis(二)—— 五大基本数据类型和三大特殊数据类型

    1、常用命令  批量操作: redis可以定义对象  方式(一) :以JSON格式(其实就是key-value格式)保存一个对象 方式(二) : 把对象的两个属性定义成两个key 注意,如果采用第一种方式,那么无法单独取出字段哦~ 2、使用场景 数字int类型的string作为计数器,比如统计文章的

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包