Redis理论】的更多相关文章

一.redis简介 1.Redis:键值对类型的内存数据库:应用于高并发和实时请求的场景: 2.Redis常用数据类型: (1) string(基本数据类型)     (2)hash 注:hash中的数据(key-value)只能为字符串类型 (3)list (4)set 不重复,无序 (5)sorted set ,不重复,有序 3.特点: (1)高性能 (读速度11W次/s,写速度约8W次/s) (2)原子性 (可保证数据的准确性) (3)持久存储(两种方式:RDB快照,AOF日志) (4)主…
CAP是Consistency(一致性),Availability(可用性),Partition tolerance(分区容错性)的缩写.在学习redis过程中看到这个名词,查找各位大佬的文章发现这篇讲得很简单清晰,文章来自公众号:codewill. CAP 定理(CAP theorem)又被称作布鲁尔定理,是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric Brewer)在 2000 年的 ACM PODC 上提出的一个猜想.2002 年,麻省理工学院的赛斯·吉尔伯特(Seth Gil…
redis中有一种数据格式,hyperloglog,本文就此数据结构的作用.redis的实现及其背后的数学原理作一个整理.当然本文不包含任何数学公式,而是希望用直观的例子帮大家理解. 主要内容如下: 1.业务场景 2.使用效果 3.数学原理 4.redis的实现原理 1.业务场景 现在有这样一个业务场景,统计某个页面的uv.和pv不同,在统计uv的时候需要根据用户id进行去重,因此就很难用一个简单的累加计数器来累加pv.当用户量达到千万甚至更高级别的时候,去重所需要的额外存储空间将是巨大的.而h…
http://www.ttlsa.com/redis/redis-cluster-theoretical-knowledge/ Redis 集群的 TCP 端口(Redis Cluster TCP ports) 每个 Redis 集群节点需要两个 TCP 连接打开.正常的 TCP 端口用来服务客户端,例如 6379,加 10000 的端口用作数据端口,在上面的例子中就是 16379. 第二个大一些的端口用于集群总线(bus),也就是使用二进制协议的点到点通信通道.集群总线被节点用 于错误检测,配…
redis(Remote Dictionary Server)   一.原理及特性层面:     1.优势:        1)数据加载在内存中,执行速度快, 数据结构类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1).        2)单线程多路复用,I/O多路复用(防止  I/O 阻塞)-- 一种效率更高的 I/O 模型, 在单个线程中通过记录跟踪每一个sock(I/O流) 的状态来管理多个I/O流.(相比多线程效率更高, .跟多线程相比较,线程切换需要切换到…
Jedis即redis java客户端,源码地址:https://github.com/xetorthio/jedis pom配置: <dependency>    <groupId>redis.clients</groupId>     <artifactId>jedis</artifactId>     <version>3.0.1</version>     <type>jar</type>…
一. Redis官方推荐集群方案:Redis Cluster 适用于redis3.0以后版本,        redis cluster 是redis官方提供的分布式解决方案,在3.0版本后推出的,有效地解决了redis分布式的需求,当一个redis节点挂了可以快速的切换到另一个节点. 架构细节: (1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽. (2)节点的fail是通过集群中超过半数的节点检测失效时才生效. (3)客户端与redis节点直连…
[0]常用架构种类 (0.1)单机Redis (0.2)单纯的Redis主从复制 (0.3)哨兵Sentinel+Redis主从复制集群(实现高可用自动故障转移) (0.4)Redis Cluster 分布式数据库集群 (0.5)第三方中间件+Redis 主从复制 [1]Redis 主从复制 一般情况下,这种架构,主节点负责写数据,从节点负责读数据,主节点定期吧数据同步到从节点保证数据一致性. 常用的Redis主从拓扑: (1)一主一从 (2)一主多从 (3)级联复制 [1.1]一主一从 主要是…
摘要 分布式锁在很多应用场景下是非常有效的手段,比如当运行在多个机器上的不同进程需要访问同一个竞争资源的时候,那么就会涉及到进程对资源的加锁和释放,这样才能保证数据的安全访问.分布式锁实现的方案有很多,比如基于ZooKeeper实现.或者基于Mysql实现等等,今天我们来一起看看如何基于Redis实现分布式锁服务. 分布式锁要点 对于分布式锁的目标,我们必须首先明确三点: 任何一个时间点必须只能够有一个客户端拥有锁. 不能够有死锁,也就是最终客户端都能够获得锁,尽管可能会经历失败. 错误容忍性要…
一.redis的过期策略: redis的过期策略是:定期删除+惰性删除redis在存储数据时,可能会设置过期时间,而所谓的定期删除,指的是redis默认是每隔100ms就随机抽取一些设置了过期时间的key进行检查,如果过期了就会删除.至于为啥是每隔100ms随机抽取一些数据进行检查而不是全部检查,这就与cpu负载有关了,如redis中的数据十分庞大,并且全部都设置了过期时间,依次全部检查并且进行删除的话负载太高,影响性能.但是,由于是随机抽取的key进行检查进行删除,那么很多的key可能会到了过…