详解Redis的应用场景和优缺点


当前第2页 返回上一页

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的应用场景和优缺点的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

Redis是单线程还是多线程,为什么

Redis要点分析

Redis一个hash能存多少field

Redis 怎么使用

什么是Redis雪崩

Redis保存数据的时候会加锁吗

Redis可以当消息队列使用吗

Redis如何解决分页查询

Redis中setex命令和set命令有什么区别

Redis存放日志及热门文章

更多相关阅读请进入《Redis》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...