redis除了做缓存还可以做什么
作者&投稿:愈炭 (若有异议请与网页底部的电邮联系)
Redis应该说是目前最受欢迎的NoSQL数据库之一了。Redis通常被作为缓存组件,用作缓存数据。不过,除了可以缓存数据,其实Redis可以做的事还有很多。下面列举几例,供大家参考。
1、最新列表(推荐学习:Redis视频教程)
例如新闻列表页面最新的新闻列表,如果总数量很大的情况下,尽量不要使用select a from A limit 10,尝试redis的 LPUSH命令构建List,一个个顺序都塞进去就可以啦。不过万一内存清掉了咋办?也简单,查询不到存储key的话,用mysql查询并且初始化一个List到redis中就好了。
2、排行榜应用
实现这个功能主要用到的redis数据类型是redis的有序集合zset。zset 是set 类型的一个扩展,比原有的类型多了一个顺序属性,此属性在每次插入数据时会自动调整顺序值,保证value值按照一定顺序连续排列。
我们假设是一个游戏经验值排行榜,那主要的实现思路是:
在一个新的玩家参与到游戏中时,在redis中的zset中新增一条记录(记录内容看具体的需求)score为0
当玩家的经验值发生变化时,修改该玩家的score值
使用redis的ZREVRANGE方法获取排行榜
3、计数器应用
Redis的命令都是原子性的,你可以轻松地利用INCR、DECR命令进行原子性操作,来构建计数系统。由于单线程,可以避免并发问题,保证不会出错,而且100%毫秒级性能。
比如在一个 web 应用程序中,如果想知道用户在一年中每天的点击量,那么只要将用户 ID 以及相关的日期信息作为键,并在每次用户点击页面时,执行一次自增操作即可。
4、数据排重
Redis set是可以自动排重的,当你需要存储一个列表数据,又不希望出现重复数据时,set是一个很好的选择,并且set提供了判断某个成员是否在一个set集合内的重要接口。
实现方案:
set 的内部实现是一个 value永远为null的HashMap,实际就是通过计算hash的方式来快速排重的,这也是set能提供判断一个成员是否在集合内的原因。
5、实时的反垃圾系统
反垃圾系统通常都是基于关键词的,使用Redis储存关系词,能够利用Redis的高性能,为监控系统提供稳定及精确的实时监控功能,典型的案例如,邮件系统、评论系统等。
6、可以发布、订阅的实时消息系统
Redis中Pub/Sub系统可以构建实时的消息系统,比如,很多使用Pub/Sub构建的实时聊天应用。
设计思路:
服务端发送消息(含标题,内容),标题按照一定规则存入redis,同时标题(以最少的信息量)推送到客户端,客户点击标题时,获取相应的内容阅读.
如果未读取,可以提示多少条未读,redis能够很快记数
根据一定时间清理缓存
技术实现:
需要redis数据库,客户端websocket,服务器端websocket
更多Redis相关技术文章,请访问Redis数据库使用入门教程栏目进行学习!
Redis主从复制原理详解
所以,我们可以根据业务量的规模来确定挂载几个从节点 Slave,当缓存数据增大时,我们可以很方便的扩展从节点的数量,实现弹性扩展。同时,读写分离还可以实现数据备份和负载均衡,从而提高可靠性和性能。3)高可用保障不仅如此,Redis 还可以手动切换主从节点,来做故障隔离和恢复。这样,无论主节点或者从节点宕机,其他节点依然...
高委化癥: 1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库.不过memcache还可用于缓存其他东西,例如图片、视频等等. 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储. 3、虚拟内存--Redis当...
五华县13841061491: Redis和Memcached的区别 - ?
高委化癥: 1.性能上: 性能上都很出色,具体到细节,由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高.而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在...
五华县13841061491: redis主要解决什么问题 - ?
高委化癥: redis是内存数据库,访问速度非常快,所以能够解决的也都是这些缓存类型的问题,如下:1、会话缓存(Session Cache) 最常用的一种使用Redis的情景是会话缓存(session cache).用Redis缓存会话比其他存储(如Memcached)的优势...
五华县13841061491: redis如何理解呢,在哪些方面有应用呢 - ?
高委化癥: 您好,这样的:毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱...
五华县13841061491: Redis 和 Memcached 各有什么优缺点,主要的应用场景是什么样的 - ?
高委化癥: Redis的特点 Redis 有各种丰富的数据结构,如果和业务对口,用起来会非常方便(比如Timeline, JobQueue等场合).Redis支持数据持久化,虽然无法像数据库那样完善,但对于互联网这种场景,完全够用了.Memcached的特点 纯粹的cache...
五华县13841061491: Redis 可以用来做数据库吗 - ?
高委化癥: redis是目前公认的速度最快的基于内存的键值对数据库,但redis的缺点也非常明显,仅提供最基本的hash set, list, sorted set等基于数据类型,不分表,没有schema,没有索引,没有外键,缺少int/date等基本数据类型 多条件查询需要通过集合内联(sinter,zinterstore)和连接间接实现,操作不便,开发效率低,可维护性不佳; 因此一般不将其视为完整的数据库单独使用,很多网站将redis作为高速缓存和session状态存储层,然后再与其他数据库搭配使用.
五华县13841061491: php中redis和memcached区别和应用场景 - ?
高委化癥: redis比memcached功能更多更强大,现在基本都是只用redis了.1. 利用redis的原子性可以给数据加锁2. 可以保存临时数据,比如短信验证码和session3. 可以用于实现简单的队列任务4. 可以实现排行榜功能5. 可以实现经纬度距离计算6. ........当然不止这些,redis是一种key-value数据库,他的业务场景还可以自己扩展.
五华县13841061491: redis有什么好处 - ?
高委化癥: 1. 什么是Redis Redis是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库.Redis全称为:Remote Dictionary Server(远程数据服务),该软件使用C语言编写,Redis是一个key-value存储系统,它支持丰富的数...
五华县13841061491: 关于Redis到底能不能做数据库以及一些NoSQL的问题 - ?
高委化癥: 能,但是你使用数据库的思路要变.还是用sql的思维去使用,那么肯定觉得有些变扭.大多数人目前还是不能摆脱sql的思维方式,所以现在的系统一般同时使用sql和nosql.redis目前业界还是多把它当作一个分布式缓存数据库在使用.当然她也可以存储你任何想存储的数据
五华县13841061491: javaweb工程哪些东西需要使用redis - ?
高委化癥: 主要应用于大数据 平常的项目也可以用,缓存一些访问量超级大的数据,减少数据库的压力.