Database ------ Redis
DoYa~
这个作者很懒,什么都没留下…
展开
-
redis(七):击穿、穿透、雪崩、分布式锁
击穿产生场景:如果一个key很长时间没有被访问,变为冷数据,则该key会从缓存中删除,如果刚好在这个时点下,发生了高并发请求该key,却发现缓存中没有该key,那么请求就会压到数据库上,这就是缓存击穿解决方案:由于redis是单进程单实例的,那么redis中请求必然是串行的,所以可以采取如下方案:当第一个请求发现redis中没有需要获取的key时,会通过setnx创建一把锁,并拿到该锁去数...原创 2020-02-15 17:03:56 · 286 阅读 · 0 评论 -
redis(六):AKF架构解决Redis单机单节点下的弊端
为什么要用集群?redis在单机、单节点、单实例下的弊端:单点故障缓存容量有限压力问题使用集群主要是为了解决上述问题,再谈如何解决之前,先了解一下AKF架构。AKF扩展立方体详细内容:https://blog.csdn.net/qq_43186095/article/details/102985483上述弊端可以通过AKF架构来解决,在上图中,x轴实现多个redis的全量镜...原创 2019-11-11 20:58:15 · 1797 阅读 · 0 评论 -
redis:twemproxy安装
源码地址 https://github.com/twitter/twemproxy安装安装组件yum install automake libtoolautoreconf -fvi如果报错,一般是autoconf版本太低,下载新版本到阿里云镜像库 mirrors.aliyun.com 找到epel库点帮助 wget -O /etc/yum.repos.d/epel.repo ...原创 2019-11-11 13:53:23 · 158 阅读 · 0 评论 -
redis(五):RDB与AOF
Redis支持RDB和AOF两种持久化机制RDBRDB持久化是把当前进程数据生成快照保存到硬盘的过程这里涉及到了一个时点性的问题。当redis生成快照的时候,由于需要时间,并且对外服务不能停止,因此复制的过程中,数据在不断更新,因此当快照完成的时候,这个快照具体应该说成是哪个时点的数据就会很混乱。(正常应该说成是完成时点的数据)那么如何解决这个时点混乱?redis采用的是fork + Co...原创 2019-11-06 08:03:18 · 354 阅读 · 0 评论 -
redis(四):消息订阅,事务,RedisBloom
消息订阅上图假如是qq客户端的消息处理模式,图中对消息进行了分析,分为两种信息,一种是实时的,一种是历史的。首先看历史信息,用户都会有翻阅历时信息的习惯,但是一般都只查看近期的,查阅更早的信息的用户占少数,因此我们可以根据redis查询数据快的特性,通过sored sets来解决用户对于近期数据的查询,减少数据库的压力。具体实现:通过sorted sets的zremrangebyrank...原创 2019-11-05 15:35:17 · 197 阅读 · 0 评论 -
redis(三):lists,sets,hashes,sorted sets
lists按插入排序lpush / rpushlpop / rpop以上两个命令同向可实现栈(ex:lpush,lpop),反向可实现队列(ex:lpush,rpop)。lrange: Get a range of elements from a listlindex / lset :取值/更新以上两个命令可以对应数组数据结构lrem:移除 参数为正从前向后删除重复元素li...原创 2019-11-04 20:08:10 · 286 阅读 · 0 评论 -
redis(二):string类型 && bitmap
基本命令进入redisredis-cli -p 端口号 //后边可以接 -n 库号 进入指定库help命令查看帮助文档String类型对于字符串的操作append:Append a value to a keyset/getsetrange:Overwrite part of a string at key starting at the specified offset...原创 2019-11-04 16:09:17 · 207 阅读 · 0 评论 -
redis(一):介绍&&安装
背景介绍redis之前首先看一个图:首先有些常识就是,计算机在内存中寻址是比磁盘快上10w倍的,在磁盘上,数据存储是分扇区的,每个扇区是512byte,为了减少读取成本,不管想读多少数据,每次最少从内存中读取4K,上图中data.txt的data page每个都是4K,并且指向他们的索引也都是4k,在数据库中查找数据的时候这些索引存储在B+Tree里,通过遍历B+Tree来CRUD这些数据。...原创 2019-11-03 22:04:12 · 192 阅读 · 0 评论