![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Redis
文章平均质量分 59
Redis详解
程序员铁蛋
这个作者很懒,什么都没留下…
展开
-
Redis和MySQL如何保证数据一致性
Redis用来作为应用和数据库之间的缓存层,主要目的是为了减少数据的IO,提升IO性能。当应用程序需要读取某个数据时,会先从Redis去查询,如果命中则把数据返回,否则再查询数据库,查询到数据后再把数据缓存到Redis中。在这样的架构中,数据会同时存储在Redis和数据库中,当数据发生变化时,Redis和数据库需要同步更新,由于更新数据是有先后的,所以会出现数据一致性问题。无论选择哪种方法,由于两个操作不是原子的,都会出现一方失败导致的数据不一致问题。原创 2023-06-24 00:01:34 · 505 阅读 · 0 评论 -
缓存雪崩和缓存穿透的解决方案
缓存雪崩是指存储在缓存里面的大量数据,在同一时刻全部过期,大部分流量直接到达了数据库,导致数据库压力增加,造成数据库崩溃的情况。原创 2023-06-23 22:27:06 · 515 阅读 · 0 评论 -
Redis哨兵机制与实现
1. Redis哨兵机制Redis的读写分离、主从复制架构师针对读请求的一种横向扩展,可以形成一主多从的架构,但是有一个非常致命的问题:master节点挂了怎么办?slave节点只会提供读请求,用户没法执行写请求了为了解决这个问题,需要一个第三方来监视着master和slave的服务状态,一旦master挂掉,第三方还负责去切换其中一个slave为master,形成一个新的主从复制架构。这个第三方就是哨兵。2. Redis哨兵机制实现拷贝redis文件夹中的sentinel.conf 文件原创 2020-06-18 10:22:41 · 103 阅读 · 0 评论 -
Redis缓存过期机制
1. 缓存过期机制Redis可以通过设置一个过期时间expire来处理缓存,其中处理方式有两种:(主动)定期删除,Redis会抽查随机的key,默认1秒十次,一旦抽查的key过期了,就会给删除,配置的属性在redis.conf中,hz等于10,表示1秒抽查10次hz 10(被动)惰性删除,key到期后不去主动检测,而是请求访问到这个key之后,会检查下是否过期,这样就不会太消耗CPU资源,缺点是一直占用着内存2. 内存淘汰管理机制因为计算机的内存是有限的,在部署Redis的同时,也可能原创 2020-06-17 11:23:48 · 1490 阅读 · 0 评论 -
Redis读写分离架构搭建及原理解析
1. Redis读写分离原理为了解决单实例Redis在高并发下的性能问题,所以需要对单实例Redis进行扩展,将其扩展为一个(master)主节点负责写入以及多个从节点(slave)负责读取,所以读写分离架构是一种主从架构。当slave节点初始化时,会ping向master,一旦ping通了,slave就会从master节点进行数据复制,这是一种基于RDB持久化机制的全量的数据复制模式,slave节点把master节点的RDB文件复制到slave节点上,然后把RDB文件加载到内存中去。后期mast原创 2020-06-16 20:32:46 · 1490 阅读 · 0 评论 -
Redis持久化机制之AOF
因为RDB的持久化机制是定期全量备份,有可能导致最后一次的需要备份的数据还没来得及备份就丢失了,但其实也无所谓,毕竟是缓存如果追求数据的完整和安全性,就需要考虑AOF的机制了。1. AOF特点以日志的形式来记录用户请求的写操作,读操作不会记录,因为写操作才会存储文件以追加的形式而不是修改的形式redis的aof恢复其实就是把追加的文件从头到尾的读取执行写操作2. AOF的优缺点优势AOF更加耐用,可以以秒级别为单位备份,如果发生问题,也只会丢失最后一秒的数据,增加了可靠性和完整性以原创 2020-06-16 11:43:36 · 103 阅读 · 0 评论 -
Redis持久化机制之RDB
1. 什么是RDB?RDB:每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存。如果宕机重启,那么内存里的数据肯定会没有的,重启Redis后,则会恢复。是一个全量的备份模式。简单说,就是Redis定期备份内存数据,系统重启后,再从备份数据读取到内存中。2. RDB的优劣势?优势每隔一段时间备份,全量备份灾备简单,可以远程传输子进程备份的时候,主进程不会有任何IO操作,保证备份数据的完整性相对AOF来说,当有更大文件的时候可以快速重启恢复劣势原创 2020-06-15 15:40:55 · 186 阅读 · 0 评论 -
Redis五大数据类型之list
123原创 2020-06-15 14:29:32 · 109 阅读 · 0 评论 -
Redis安装与配置
解压 tar -zxvf redis-5.0.8.tar.gz安装依赖 yum install gcc-c++编译 make && make install进入到redis的utils包下,拷贝cp redis_init_script /etc/init.d/,把redis作为系统服务新建目录 mkdir /usr/local/redis -p将redis里面的redis.conf文件拷贝,cp redis.conf /usr/local/redis修改redis.conf的配.原创 2020-06-15 13:57:21 · 75 阅读 · 0 评论 -
Redis的I/O多路复用机制
1. 为什么Redis要使用I/O多路复用机制呢?因为Redis是单线程的,所有的操作命令都是顺序执行的,一旦有读写操作命令,等待用户输入或输出就会造成阻塞,所以I/O操作在一般情况下往往不能直接返回,这会导致某一操作的I/O阻塞导致整个进程无法进行其他操作,而I/O多路复用就是为了解决这个问题而出现的。2. 什么是I/O多路复用?I/O多路复用是指在单个线程中通过记录跟踪每一个socket(I/O流)的状态来管理多个I/O流。select、poll、epoll都是I/O多路复用的具体实现。I/O多路原创 2020-06-14 21:07:38 · 2492 阅读 · 1 评论 -
Redis五大数据类型之zset
zset和set类似,都是存储无序不重复的数据。但是zset会带有一个分数score,然后可以根据score去排序。往zset中加入数据并罗列出来带有分数的显示出来插入0分的e和6分的f,并显示,可以看出e排在最前面,因为分数最小,f排在最后面,因为分数最大获得某个元素的下标获取某个元素的分数统计zset中元素的个数根据分数获取分数范围内元素的个数根据分数得到的数据集进行分页处理删除某个元素...原创 2020-06-14 16:50:38 · 361 阅读 · 0 评论 -
Redis五大数据类型之set
set类型用于存储无序、不重复的数据。往set中插入数据,并罗列出set中的元素判断set中元素个数,判断某个元素是否存在于set中移除set中某个元素随机弹出一个元素随机弹出两个元素随机获取3个元素把set1中的某个元素放入到set2中去列出set1里面有的而set2里面没有的元素罗列出set1和set2相同的元素求set1和set2的并集...原创 2020-06-14 16:37:01 · 106 阅读 · 0 评论 -
Redis五大数据类型之hash
类似于Java的map,把一个结构化的数据存放到Redis里面,比如:user{ name: tiedan, age: 18, sex: man}user对应key,name对应property,tiedan对应value。通过hset key property value来设置属性值,hget key property来获取属性值通过hmset key property1 value1 property2 value2…来设置多个属性值。通过hgetall获取当前key里面所有的原创 2020-06-09 15:24:10 · 85 阅读 · 0 评论 -
Redis五大数据类型之string
string是Redis中最简单的字符串类型,是用来存储键值对的。如图所示,set进name和age,再使用get key命令把对应的内容拉取出来。使用keys * 命令把所有的key拉取出来。keys * 是不推荐在生产环境中用的,因为生产环境中会有大量的key,可以使用下图所示的通配符的方式去模糊查询。使用type key命令可以查看key的数据类型set key命令是可以覆盖key相同的值的使用setnx key可以判断key如果存在,就不继续设置新的值如果不存在,才可以设置原创 2020-06-09 14:33:58 · 124 阅读 · 0 评论 -
分布式缓存方案与技术选型
1. Ehcache优点:基于Java开发基于JVM缓存,在JVM中使用Ehcache,速度更快缺点:集群不支持分布式不支持适用场景:适合单应用2. Memcache优点:简单的KV存储,只支持字符串多线程支持集群、分布式缺点:无法持久化3. Redis优点:简单的KV存储,丰富的数据结构:String、List、Hash、Set、Zset持久化支持集群、分布式缺点:单线程,无法利用多核CPU,存储大数据量会导致性能降低4. Memc原创 2020-06-09 11:01:39 · 322 阅读 · 0 评论 -
Redis入门
什么是Redis?早期很多互联网产品在面对高并发时经常出现“响应慢”、“卡住”等用户体验差的情况,那是因为用户的“读”请求远远多于用户的“写”请求,频繁的读请求在高并发的情况下会增加数据库的压力,为了减少用户直接与数据库的交互,许多系统架构引入了缓存中间件,将用户频繁需要读取的数据放入缓存中,可以有效降低数据库的压力。Redis就是缓存中间件的一种,它是一种基于内存的、采用键值对结构化存储的N...原创 2020-02-23 18:48:50 · 182 阅读 · 0 评论