Redis有哪些用途及优缺点

54次阅读
没有评论

共计 1897 个字符,预计需要花费 5 分钟才能阅读完成。

自动写代码机器人,免费开通

这篇文章主要介绍 Redis 有哪些用途及优缺点,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、Memcached 和 Redis 相比的劣势

业界常用 MySQL+Memcached 这样的存储架构,但是随着访问量的不断攀蛇,随之而来的问题也有很多。

1、MySQL 需要不停的拆库拆表,Memcached 也需要跟着不断扩容;

2、Memcached 与 MySQL 之间存在着一定的数据不一致的现象;

3、如果 Memcached 容易命中率变低,直接穿透到 MySQL,导致数据库无法支撑;

2、Redis 的特点

说起 Redis,很多开发者都只知道它和 Memcached 一样是非关系型数据库,可以直接存储 K - V 形式的数据,但是相比起 Memcached 来说,他也有很多不同的地方。

1、Redis 不仅仅只支持简单的 K - V 形式的数据存储,还支持 list、set、hash、zset 等等集合类数据的存储;

2、Redis 支持实时的数据备份,及时宕机,也可以把数据恢复过来;

3、Redis 支持数据的持久化,可以存放在内存 memory 中的数据直接保存在磁盘上;

3、Redis 常用的数据类型

String、Hash、Set、List、SortedSet、pub/sub、Transactions。

1、String:Strings 就是一个最最简单的 Key-Value 形式存储的变量。其中 Value 既可以是数字也可以是字符串。其实现方式是在 Redis 内部默认存储一个字符串,被 redisObject 引用,当检测到数字操作如自增自减 incr、decr 等等命令时,自动转化为数字进行计算,计算完毕后再转化为 String 存储起来。

2、Hash:Hash 存储是键值对的 value。即 Key-Hash,而 Hash 又是一个 k - v 的结构,如果使用的 Memcached,则需要把整个 Hash 打包存储在内存中,如果需要查询其中某个值,还要全部取出整个 Hash,再查找对应值。而 Redis 可以直接通过命令获取到 Value,大大提高了性能。其实现原理:当成员较少时,Redis 为了节约内存会采用类似一维数组的紧凑存储,而当对象较多时,则直接转为 HashMap 存储。

3、Set:Set 是一个无序的天然去重的集合,即 Key-Set。此外还提供了交集、并集等一系列直接操作集合的方法,对于求共同好友、共同关注什么的功能实现特别方便。其底层是靠 HashMap 实现的,其中 value 为 null;

4、List:List 是一个有序可重复的集合,其遵循 FIFO 的原则,底层是依赖双向链表实现的,因此支持正向、反向双重查找。通过 List,我们可以很方面的获得类似于最新回复这类的功能实现。

5、SortedSet:类似于 java 中的 TreeSet,是 Set 的可排序版。此外还支持优先级排序,维护了一个 score 的参数来实现。其底层主要依赖 HashMap 来实现的,通过维持插入的数值和 Score 优先级的映射来进行排序。

6、pub/sub:发布订阅,类似于消息队列 mq。可以选择对某个 Key 进行订阅,一旦这个 key 发布了一些消息,则所有订阅了这个 Key 的对象就可以收到这个消息。主要可以用在实时消息系统上,例如聊天之类的。

7、Transactions:NoSQL 不支持事务,但是通过提供了打包执行的功能,即这个包里面的所有命令必须要一起执行,此外还可以锁定某个 Key,在打包执行命令时如果检测到这个 Key 发生了变化,则直接回滚。

4、Redis 的常用应用场景

redis 使用内存提供存储,通过持久化功能保存数据。且针对 request 是单线程操作。这一系列特点使得 redis 具有十分神奇的功能。

1、查找最新的回复。

如果在传统的关系型数据库,这就需要使用 select * from table where name= order by time desc limit  100;这十分消耗数据库性能,但是通过 Redis,就可以直接在 Redis 里面通过 Id 创建一个 List,指定长度 1w,当需要查找时,直接输出该 list 的后 100 条记录。

2、排行问题

常见的排行问题,例如最热话题、游戏排名等等,这些都可以通过 Redis 来轻松实现,直接使用 ZRank 即可得到。

3、删除过期数据

Redis 不是真正意义上的可持久化数据库,可以给数据加上一个有效时间,在有效时间超过时,Redis 会自动删除对应数据。

以上是 Redis 有哪些用途及优缺点的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-03发表,共计1897字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)