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

redis索引是什么数据结构 及缺陷

发布网友 发布时间:2022-04-21 01:41

我来回答

1个回答

热心网友 时间:2022-05-03 16:24

1. String——字符串

String 数据结构是简单的 key-value 类型,value 不仅可以是 String,也可以是数字(当数字类型用 Long
可以表示的时候encoding 就是整型,其他都存储在 sdshdr 当做字符串)。使用 Strings 类型,可以完全实现目前 Memcached
的功能,并且效率更高。还可以享受 Redis 的定时持久化(可以选择 RDB 模式或者 AOF 模式),操作日志及 Replication 等功能。除了提供与
Memcached 一样的 get、set、incr、decr 等操作外,Redis 还提供了下面一些操作:
2. Hash——字典

在 Memcached 中,我们经常将一些结构化的信息打包成 hashmap,在客户端序列化后存储为一个字符串的值(一般是 JSON
格式),比如用户的昵称、年龄、性别、积分等。这时候在需要修改其中某一项时,通常需要将字符串(JSON)取出来,然后进行反序列化,修改某一项的值,再序列化成字符串(JSON)存储回去。简单修改一个属性就干这么多事情,消耗必定是很大的,也不适用于一些可能并发操作的场合(比如两个并发的操作都需要修改积分)。而
Redis 的 Hash 结构可以使你像在数据库中 Update 一个属性一样只修改某一项属性值。

3. List——列表

List 说白了就是链表(redis 使用双端链表实现的 List),相信学过数据结构知识的人都应该能理解其结构。使用 List
结构,我们可以轻松地实现最新消息排行等功能(比如新浪微博的 TimeLine )。List 的另一个应用就是消息队列,可以利用 List 的 *PUSH
操作,将任务存在 List 中,然后工作线程再用 POP 操作将任务取出进行执行。Redis 还提供了操作 List 中某一段元素的
API,你可以直接查询,删除 List 中某一段的元素。

4. Set——集合

Set 就是一个集合,集合的概念就是一堆不重复值的组合。利用 Redis 提供的 Set
数据结构,可以存储一些集合性的数据。比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。因为 Redis
非常人性化的为集合提供了求交集、并集、差集等操作,那么就可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面的所有集合操作,你还可以使用不同的命令选择将结果返回给客户端还是存集到一个新的集合中。

1.共同好友、二度好友
2.利用唯一性,可以统计访问网站的所有独立 IP
3.好友推荐的时候,根据 tag 求交集,大于某个
threshold 就可以推荐
5. Sorted Set——有序集合

和Sets相比,Sorted Sets是将 Set 中的元素增加了一个权重参数 score,使得集合中的元素能够按 score
进行有序排列,比如一个存储全班同学成绩的 Sorted Sets,其集合 value 可以是同学的学号,而 score
就可以是其考试得分,这样在数据插入集合的时候,就已经进行了天然的排序。另外还可以用 Sorted Sets 来做带权重的队列,比如普通消息的 score
为1,重要消息的 score 为2,然后工作线程可以选择按 score 的倒序来获取工作任务。让重要的任务优先执行。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音无人机如何收益 谁知道人力资源关于招聘方面要从哪里入手啊?还有就是培训这块有什么好的... 现在去招聘会找工作太冷了,还有没有其他更方便的途径啊? (活色生香)里乐颜是不是失去嗅觉了?是怎么失去了? ...已经被河北金融学院录取,想知道金院的录取通知书什么时候开始下发... 贵州考生何时才能收到河北金融学院专科的录取通知书 河北金融学院录取通知书里装什么东西 苏州工业园区社保缴费比例是多少 苏州园区乙类社保怎么? 梦幻西游怎么样在交易的时候改变钱的颜色...?高手请教!!! redis key 能不能嵌套 数据结构 redis 常见数据结构以及使用场景分析? redis队列什么意思 Redis 和 Memcached 各有什么优缺点,主要的应用场... 详细介绍redis的几种数据结构以及使用注意事项 Redis底层数据结构解密? 双端链表和双向链表的异同! 农村信用社存五万元定期三年利息有多少? 农村商业银行50000元存三年死期多少利息? 5万年利率3.52三年利息是多少 邮政5万存三年定期,利息有多少? 五万元人民币存3年,利率为3.35到期得多少呢? 5万存3年利息多少? 5万存3年利息多少 陕西秦农银行5万定期三年利息是多少 5万元人民币定期3年利息是多少? 5万存三年哪个银行利息高 5万元存3年定期利息多少? 交通银行五万存三年定期利息多少 5万块钱存三年定期利息总共是多少 Redis有哪些数据类型 求java学习路线图? redis与mc的区别,redis支持的数据结构有哪些 拉肚子拉稀水怎么办 拉肚子拉水怎么办? 拉肚子拉水怎么办? 拉肚子拉到? 快速拉肚子简单方法 拉肚子怎么办? 拉肚子了怎么办 拉肚子怎么办? 如何快速拉肚子? 拉肚子怎么回事 拉肚子拉出来的东西都是什么 肚子痛拉肚子怎么缓解 经常拉肚子是怎么回事? 腹泻拉水怎么办?? 腹泻拉肚子 腹泻和拉稀,拉肚子有什么区别啊? 电脑中的、英特尔核心显卡驱动程序、是什么?起什...