问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

redis数据类型是什么?

发布网友 发布时间:2022-04-24 17:30

我来回答

4个回答

懂视网 时间:2022-04-06 11:48

  • sismember 指令判断该 key 对应的 set 数据结构中,是否存在某个元素,如果存在返回 1,否则返回 0;

  • sdiff 指令来对多个 set 集合执行差集;

  • sinter 指令对多个集合执行交集;

  • sunion 指令对多个集合执行并集;

  • spop 指令弹出一个随机元素;

  • srandmember 指令返回一个或多个随机元素。

  • 在社交系统中,可以用于存储关注的好友列表,用来判断是否关注,还可以用来做好友推荐使用。另外,还可以利用 set 的唯一性,来对服务的来源业务、来源 IP 进行精确统计。

    sorted set 有序集合

    有序集合中,每个元素都会关联一个 double 类型的 score 分数值。有序集合通过这个 score 值进行由小到大的排序。有序集合中,元素不允许重复,但 score 分数值却允许重复。

    操作

  • zscan 指令:按顺序获取有序集合中的元素;

  • zscore 指令:获取元素的 score 值;

  • zrange指令:通过指定 score 返回指定 score 范围内的元素;

  • 在某个元素的 score 值发生变更时,还可以通过 zincrby 指令对该元素的 score 值进行加减。

  • 通过 zinterstore、zunionstore 指令对多个有序集合进行取交集和并集,然后将新的有序集合存到一个新的 key 中,如果有重复元素,重复元素的 score 进行相加,然后作为新集合中该元素的 score 值。

  • 可以用有序集合来统计排行榜,实时刷新榜单,还可以用来记录学生成绩,从而轻松获取某个成绩范围内的学生名单,还可以用来对系统统计增加权重值,从而在 dashboard 实时展示。

    hash 哈希

    bitmap

    位图是一串连续的二进制数字,底层实际是基于 string 进行封装存储的

    按 bit 位进行指令操作的。bitmap 中每一 bit 位所在的位置就是 offset 偏移,可以用 setbit、bitfield 对 bitmap 中每个 bit 进行置 0 或置 1 操作,也可以用 bitcount 来统计 bitmap 中的被置 1 的 bit 数,还可以用 bitop 来对多个 bitmap 进行求与、或、异或等操作。

    Redis 笔记

    bitmap 位图的特点是按位设置、求与、求或等操作很高效,而且存储成本非常低,用来存对象标签属性的话,一个 bit 即可存一个标签。可以用 bitmap,存用户最近 N 天的登录情况,每天用 1 bit,登录则置 1。

    个性推荐在社交应用中非常重要,可以对新闻、feed 设置一系列标签,如军事、娱乐、视频、图片、文字等,用 bitmap 来存储这些标签,在对应标签 bit 位上置 1。对用户,也可以采用类似方式,记录用户的多种属性,并可以很方便的根据标签来进行多维度统计。bitmap 位图的重要指令包括:setbit、 getbit、bitcount、bitfield、 bitop、bitpos 等。

    使用经历

    统计用户登录情况 : 1 2 3 5 天内登录
    bitmap : 1 1 1 0 1

    GEO 地理位置

    在存储某个位置点时,首先利用 Geohash 算法,将该位置二维的经纬度,映射编码成一维的 52 位整数值,将位置名称、经纬度编码 score 作为键值对,存储到分类 key 对应的 sorted set 中。

    需要计算某个位置点 A 附近的人时,首先以指定位置 A 为中心点,以距离作为半径,算出 GEO 哈希 8 个方位的范围, 然后依次轮询方位范围内的所有位置点,只要这些位置点到中心位置 A 的距离在要求距离范围内,就是目标位置点。轮询完所有范围内的位置点后,重新排序即得到位置点 A 附近的所有目标。

    使用 geoadd,将位置名称(如人、车辆、店名)与对应的地理位置信息添加到指定的位置分类 key 中;

    使用 geopos 方便地查询某个名称所在的位置信息;

    使用 georadius 获取指定位置附近,不超过指定距离的所有元素;

    Redis GEO 地理位置,利用 Geohash 将大量的二维经纬度转一维的整数值,这样可以方便的对地理位置进行查询、距离测量、范围搜索。但由于地理位置点非常多,一个地理分类 key 下可能会有大量元素,在 GEO 设计时,需要提前进行规划,避免单 key 过度膨胀。

    Redis 的 GEO 地理位置数据结构,应用场景很多,比如查询某个地方的具体位置,查当前位置到目的地的距离,查附近的人、餐厅、电影院等。GEO 地理位置数据结构中,重要指令包括 geoadd、geopos、geodist、georadius、georadiusbymember 等。

    使用 geodist 来获取指定的两个位置之间的距离。

    hyperLogLog 基数统计

    hyperLogLog 是用来做基数统计的数据类型,当输入巨大数量的元素做统计时,只需要很小的内存即可完成。HyperLogLog 不保存元数据,只记录待统计元素的估算数量,这个估算数量是一个带有 0.81% 标准差的近似值,在大多数业务场景,对海量数据,不足 1% 的误差是可以接受的。

    Redis 的 HyperLogLog 在统计时,如果计数数量不大,采用稀疏矩阵存储,随着计数的增加,稀疏矩阵占用的空间也会逐渐增加,当超过阀值后,则改为稠密矩阵,稠密矩阵占用的空间是固定的,约为12KB字节。

    通过 hyperLoglog 数据类型,你可以利用 pfadd 向基数统计中增加新的元素,可以用 pfcount 获得 hyperLogLog 结构中存储的近似基数数量,还可以用 hypermerge 将多个 hyperLogLog 合并为一个 hyperLogLog 结构,从而可以方便的获取合并后的基数数量。

    hyperLogLog 的特点是统计过程不记录独立元素,占用内存非常少,非常适合统计海量数据。在大中型系统中,统计每日、每月的 UV 即独立访客数,或者统计海量用户搜索的独立词条数,都可以用 hyperLogLog 数据类型来进行处理。

    相关学习推荐:Laravel

    热心网友 时间:2022-04-06 08:56

    一、string

    string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

    string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

    string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

    命令: SET 和 GET 命令

    二、hash 

    Redis hash 是一个键值(key=>value)对集合。

    Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

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

    三、list

    列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。
    列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
    lpush 设置值,lrange取值

    四、set

    redis的set是string的无序集合。集合通过哈希表实现。

    添加一个string元素到key对应的set集合中,用 sadd命令。返回1表示成功,0表示在集合中已存在,返回错误表示key对应的set不存在。

    查看用smembers 命令

    集合内元素的唯一性,第二次插入的元素将被忽略。

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

    五、zset 

    redis的zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

    添加元素到集合,元素在集合中存在则更新对应score:zadd key score member。

    Redis数据模型

    Redis的外围由一个键、值映射的字典构成。与其他非关系型数据库主要不同在于:Redis中值的类型不仅限于字符串,还支持如下抽象数据类型:

    1、字符串列表

    2、无序不重复的字符串集合

    3、有序不重复的字符串集合

    4、键、值都为字符串的哈希表

    值的类型决定了值本身支持的操作。Redis支持不同无序、有序的列表,无序、有序的集合间的交集、并集等高级服务器端原子操作。

    热心网友 时间:2022-04-06 10:14

    一,string

    string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。

    string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。

    string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。

    命令: SET 和 GET 命令

    二、hash 

    Redis hash 是一个键值(key=>value)对集合。

    Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象。

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

    三、list

    列表是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。
    列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。
    lpush 设置值,lrange取值

    四、set

    redis的set是string的无序集合。集合通过哈希表实现。

    添加一个string元素到key对应的set集合中,用 sadd命令。返回1表示成功,0表示在集合中已存在,返回错误表示key对应的set不存在。

    查看用smembers 命令

    集合内元素的唯一性,第二次插入的元素将被忽略。

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

    五、zset 

    redis的zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。

    不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

    添加元素到集合,元素在集合中存在则更新对应score:zadd key score member。

    热心网友 时间:2022-04-06 11:48

    redis是一个key-value存储系统。

    redis和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

    在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

    Redis支持主从同步。

    数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。

    这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    原神留影机如何使用 《原神》奇特的留影机任务攻略介绍_《原神》奇特的留影机任务攻略... 《原神》留影机使用方法介绍_《原神》留影机使用方法是什么 野菜鸡蛋饼制作步骤 如何做野菜鸡蛋饼会更美味? 有哪些懒人野菜鸡蛋饼推荐? 如何在家自制好吃的野菜鸡蛋饼? 曹杰人物主要观点 请求大家帮忙解答:一分数分母减2得4/5,分母加1得2/3,求原分数?我要具体... -1/2,2/3,-3/4,4/5……的通项公式是什么? Redis支持几种数据类型? 我去日本工作,那个运营商的手机卡信号好,网速快,套餐便宜? 2k144hz显示器哪个好? 显示器 2K 144hz 和 4K 怎么选??? 我的电脑重装win11后,显示器支持2k 144Hz的,在显示设置中没有144Hz选项,请大佬帮忙解答? 买了块2k144hz的显示器则么调144hz 显示屏2K-144HZ 和 4K-60HZ哪个适合玩游戏用?? 显示器买2k还是144? 选显示器是2k 144hz好还是1k 240hz好? 买显示器2K和144赫兹该选哪个? 感冒吃什么药比较好?或有什么偏方?症状:流鼻涕、喉咙有点痛、少许咳嗽、有痰。 什么感冒要治疗流鼻涕喉咙有痰效果好? 喉咙有痰咳不出咽不下需要吃什么药啊???有点流鼻涕 感冒、上火、流鼻涕,喉咙有痰。应该吃什么感冒药?或者有什么其他方法可以好起来? 干部培训旨在解决干部工作中的哪些问题? 党政人才 干部教育培训 有什么作用 干部教育培训与选拔任用有机结合的途径 着力培养一支什么的干部队伍? 干部教育培训工作条例指出干部教育培训是建设高素质干部队伍的什么工程 干部教育培训工作应当遵循哪些原则? 食品经营许可管理办法,制售怎么界定? 食品经营许可管理办法自什么时候起施行 怎么和测试人员介绍redis数据有哪些类型? Redis数据库适合使用于哪些应用场景? 无线充做日本需不需要做TELEC认证? 羽毛球的起源有哪几种说法? 羽毛球起源是怎样的? 羽毛球的运动是从哪里起源的? 羽毛球有怎样的起源? 羽毛球的起源是什么? 请问羽毛球究竟起源于哪里? 羽毛球运动是如何起源的? 上海有哪些美术大学 上海好的美术大学有哪些 现代羽毛球运动起源于哪个国家,羽毛球的 上海比较好的美术大学 羽毛球的起源? 上海的美术类的大学有那些? 上海有什么好的美术大学? 上海有哪几所大学的美术专业比较好~