学习分布式缓存技术Redis系列(总序)

原创 2017年12月04日 20:19:12

Remote DIctionary Server(redis)
相关参考资料

本教程所编写使用的Eclipse-java工程源码见GitHub:
https://github.com/selfconzrr/Redis_Learning

Redis官网–http://redis.io/
在线测试redis命令 http://try.redis.io/
Redis文档 https://github.com/antirez/redis-doc
官方文档 http://redis.io/documentation
Redis 支持的客户端编程语言 http://redis.io/clients

写在前面:

  Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置主从复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel(哨兵)提供高可用,通过Redis Cluster(集群)提供自动分区。

  测试发现,linux环境下部署的redis服务器性能远高于windows下部署的redis服务器性能, 不在一个层级上面。所以,建议大家把服务器搭建在Linux系统下。

适用场景:

(1)、取最新N个数据的操作
  比如取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取。
  使用LPUSH latest.comments命令,向list集合中插入数据;
  插入完成后再用LTRIM latest.comments 0 5000命令使其永远只保存最近5000个ID。

(2)、排行榜应用,取TOP N操作
  这个需求与上面需求的不同之处在于,前面操作以时间为权重,这个是以某个条件为权重,比如按顶的次数排序,这时候就需要我们的sorted set出马了,将你要排序的值设置成sorted set的score,将具体的数据设置成相应的value,每次只需要执行一条ZADD命令即可。

(3)、需要精准设定过期时间的应用
  比如你可以把上面说到的sorted set的score值设置成过期时间的时间戳,那么就可以简单地通过过期时间排序,定时清除过期数据了,不仅是清除Redis中的过期数据,你完全可以把Redis里这个过期时间当成是对数据库中数据的索引,用Redis来找出哪些数据需要过期删除,然后再精准地从数据库中删除相应的记录。

(4)、计数器应用
  Redis的命令都是原子性的,你可以轻松地利用INCR,DECR命令来构建计数器系统。

(5)、Uniq操作,获取某段时间所有数据排重值
  这个使用Redis的set数据结构最合适了,只需要不断地将数据往set中扔就行了,set意为集合,所以会自动排重。(高级点:HyperLogLog)

(6)、实时系统,反垃圾系统
  通过上面说到的set功能,你可以知道一个终端用户是否进行了某个操作,可以找到其操作的集合并进行分析统计对比等。

(7)、Pub/Sub构建实时消息系统
  Redis的Pub/Sub系统可以构建实时的消息系统,比如很多用Pub/Sub构建的实时聊天系统的例子。

(8)、构建队列系统
  使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统。

(9)、缓存
  这个不必说了,性能优于Memcached,数据结构更多样化。

  下面以Ubuntu为例:

一、Redis安装与配置

http://blog.fens.me/linux-redis-install/

二、Redis操作常用命令

http://blog.csdn.net/u011489043/article/details/78748070

三、Redis数据类型及相应操作

http://blog.csdn.net/u011489043/article/details/78720722

四、Redis的两个框架:Jedis和Redission

http://blog.csdn.net/u011489043/article/details/78796095

Jedis

ShardedJedis及分布式缓存实现

Redission

五、Redis持久化

http://blog.csdn.net/u011489043/article/details/78760074

六、Redis事务

http://blog.csdn.net/u011489043/article/details/78768366

七、Redis PipeLine

http://blog.csdn.net/u011489043/article/details/78769428

八、Redis3.0集群

http://blog.csdn.net/u011489043/article/details/78864147

九、Redis脚本

http://blog.csdn.net/u011489043/article/details/78820285

十、Redis发布与订阅

http://blog.csdn.net/u011489043/article/details/78780255

十一、Redis主从复制与哨兵模式

http://blog.csdn.net/u011489043/article/details/78809446

十二、Redis内存优化

http://blog.csdn.net/u011489043/article/details/78881507

本专栏接下来将会对每部分整理更详细的博客,敬请期待!!!

如果您觉得该专栏对您有所启发、有所帮助,可以给我打赏一元钱,去买个茶叶蛋吃,谢谢~~~~

微信:

这里写图片描述

支付宝:

这里写图片描述

—–乐于分享,共同进步
—–Any comments greatly appreciated
—–诚心欢迎各位交流讨论!QQ:1138517609

版权声明:感谢来访!欢迎指导、勘误、讨论及转载,转载请注明出处 https://blog.csdn.net/u011489043/article/details/78713356

分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

本文我们继续学习redis的高级特性——集群。本文主要内容包括集群搭建、集群分区原理和集群操作的学习。Redis集群简介Redis 集群是3.0之后才引入的,在3.0之前,使用哨兵(sentinel)...
  • javaloveiphone
  • javaloveiphone
  • 2016-08-29 14:33:28
  • 5481

分布式缓存技术redis学习系列(一)——redis简介以及linux上的安装以及操作redis问题整理

redis简介redis是NoSQL(No Only SQL,非关系型数据库)的一种,NoSQL是以Key-Value的形式存储数据。当前主流的分布式缓存技术有redis,memcached,ssdb...
  • javaloveiphone
  • javaloveiphone
  • 2016-08-24 17:40:36
  • 2433

分布式缓存技术redis学习系列(七)—— spring 整合redis如何操作redis集群

Redis 3.X版本引入了集群的新特性,为了保证所开发系统的高可用性项目组决定引用Redis的集群特性。目前spring-data-redis已发布的主干版本都不能很好的支持Redis Cluste...
  • pfnie
  • pfnie
  • 2016-08-27 13:28:44
  • 906

分布式缓存技术redis学习系列(九)——Redis主从实现读写分离

前言 大家在工作中可能会遇到这样的需求,即Redis读写分离,目的是为了压力分散化。下面我将为大家介绍借助AWS的ELB实现读写分离,以写主读从为例。实现 引用库文件 redis.client...
  • javaloveiphone
  • javaloveiphone
  • 2016-11-16 17:42:19
  • 3783

分布式缓存技术redis学习系列(六)——sentinel哨兵机制

一、简介:1、Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance),该系统执行以下三个任务:1)监控(Monitoring):Sentinel 会不断地检查你的主...
  • javaloveiphone
  • javaloveiphone
  • 2016-11-11 18:15:59
  • 1430

redis - Java操作 用redisson 和 jedis 操作redis数据库

上一篇搭建好的服务器一直开着要。Java连接Redis的使用示例 Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、...
  • chenaini119
  • chenaini119
  • 2016-10-24 15:31:04
  • 5763

redisson的理解和使用-调用流程

redisson的理解和使用-调用流程
  • hj419460467
  • hj419460467
  • 2016-07-22 17:33:36
  • 4552

redis分布锁Redisson性能测试

redisson是一个用于连接redis的java客户端工作,相对于jedis,是一个采用异步模型,大量使用netty promise编程的客户端框架。 结论:稳定性好,但是并发tps压力支持的不是特...
  • everlasting_188
  • everlasting_188
  • 2016-04-06 11:43:36
  • 4777

codis和jedis性能比较

以下是自己的理解,可能会有些误解的地方,还请大家交流指点…… jedis和codis性能比较...
  • dayibagou
  • dayibagou
  • 2015-02-25 13:57:11
  • 13716

使用Redisson、Jedis对redis进行管道操作(JAVA)

JAVA使用Redisson操作redis管道第一次写博客分享,主要是公司业务用到,但是在网上搜索不到太多相关文章。摸索后准备分享出来。Redis是一个key-value的数据库,它是一个性能超强的缓...
  • u013115498
  • u013115498
  • 2017-12-25 15:52:21
  • 453
收藏助手
不良信息举报
您举报文章:学习分布式缓存技术Redis系列(总序)
举报原因:
原因补充:

(最多只允许输入30个字)