REDIS
hy_coming
不忘初心 方得始终
展开
-
【Redis】——ZSet的底层数据结构(13)
Redis中ZSet的底层数据结构跳跃表skiplist,你真的了解吗?转载 2023-04-06 23:14:27 · 259 阅读 · 0 评论 -
【Redis】——布隆过滤器(10)
前言前面在说缓存穿透的时候说到解决方案的时候正好有提到布隆过滤器,正好现在就来说一说这个布隆过滤器是怎么一回事,在说布隆过滤器之前可能需要先说下位图算法位图位图(Bitmap),又称栅格图(英语:Raster graphics)或点阵图,是使用像素阵列(Pixel-array/Dot-matrix点阵)来表示的图像(摘自百度百科)。我们可以理解为是一个 bit 数组,每个元素存储数据的状态(由于每个元素只有 1 bit,所以只能存储 0 或 1 这 2 种状态)适用于数据量超大,但是数据的状态很原创 2020-12-13 23:05:21 · 158 阅读 · 0 评论 -
【Redis】——主从模式(5)
先说一下主从模式,其实就是一个 master node 是可以配置多个 slave node 的,支持读写分离,配置多个 slave node 主要是为了横向扩容,提高吞吐量,一般建议开启master node 的持久化,因为可能在 master 宕机重启的时候数据是空的,然后可能一经过复制, slave node 的数据也丢了。slave 不会过期 key,只会等待 master 过期 k...原创 2019-10-06 12:25:30 · 105 阅读 · 0 评论 -
【Redis】——双写一致性、过期策略(2)
最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。 更新的时候,先更新数据库,然后再删除缓存。删除缓存而不是更新缓存主要是为了考虑性能的问题,一旦我们需要频繁的更新缓存,对资源的消耗是可观的,还不如一次性删除掉,下次的请求的时候直接查询数据库,然后更新缓存。但是会出现一个问题...原创 2019-10-06 11:28:10 · 279 阅读 · 0 评论 -
【Redis】——redis cluster(7)
redis并发竞争某个时刻多个系统都是更新同一个key,但是由于网络等原因导致本来应该先到的数据后到了,就会出现问题基于 zookeeper 实现分布式锁,同一个时间只能有一个实例能够操作数据 写入缓存的时候将数据的时间戳也带上,每次需要更新的时候先判断要更新的数据的时间是不是在原数据的时间之后,是,才更新redis cluster集群redis 原生支持的 redis 集群模式...原创 2019-10-05 12:53:30 · 139 阅读 · 0 评论 -
【Redis】——缓存雪崩、穿透和击穿(3)
缓存雪崩假如每天的高峰期每秒5000个请求,来本缓存可以在高峰期抗住4000个请求,但是现在缓存机器宕机了,导致了所有的请求直接请求数据库了,数据库由于扛不住这样大的并发发出告警之后直接挂了,但是重启数据库依然还是会挂掉,所以需要在此之前就防范事前:redis高可用,,主从+哨兵,避免全盘挂掉 事中:本地ehcache缓存+hystrix限流&降级,限制在mysql合并的并发数内...原创 2019-10-05 11:30:31 · 127 阅读 · 0 评论 -
【Redis】——三种集群方式(4)
redis有三种集群方式:主从复制,哨兵模式和集群。1.主从复制主从复制原理:从服务器连接主服务器,发送SYNC命令; 主服务器接收到SYNC命名后,开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所有写命令; 主服务器BGSAVE执行完后,向所有从服务器发送快照文件,并在发送期间继续记录被执行的写命令; 从服务器收到快照文件后丢弃所有旧数据,载入收到的快照...转载 2019-07-03 17:47:41 · 359 阅读 · 0 评论 -
【Redis】——实战(11)
一、资源下载官网地址(Windows):https://github.com/dmajkic/redis/downloads官网地址(Linux):https://redis.io/二、安装安装教程:http://www.runoob.com/redis/redis-install.html三、运用本人使用的是spring集成redis,下面说下步骤第一步:导入相关依赖...原创 2019-03-25 16:18:36 · 185 阅读 · 0 评论 -
【Redis】——命令(12)
Redis 地理位置(geo) 命令命令 描述 Redis GEOADD 命令 将指定的地理空间位置(纬度、经度、名称)添加到指定的key中 Redis GEODIST 命令 返回两个给定位置之间的距离 Redis GEOHASH 命令 返回一个或多个位置元素的 Geohash 表示 Redis GEOPOS 命令 从key里返回所有给定位置元素的...原创 2019-03-25 15:44:40 · 94 阅读 · 0 评论 -
【Redis】——场景(8)
通过前面一个章节的学习我们基本上已经知道redis的基本原理,本章节我们来具体看一下redis的具体使用场景。其实从大的层面来说基于缓存存储的redis还是为了解决性能和并发得问题。如要执行耗时特别久,且结果不频繁变动的SQL,就特别适合将运行结果放入缓存。这样,后面的请求就去缓存中读取,使得请求能够迅速响应。或者在大并发的情况下,所有的请求直接访问数据库,数据库会出现连接异常。这个时候,就需要使...原创 2019-03-25 15:31:56 · 128 阅读 · 0 评论 -
【Redis】——初识(1)
一、背景传统模式的存储都是基于关系型数据库来存储的,因为以前的数据量的和访问量,以及网络请求速度都比较慢,但是随着科技的发展和需求的增长,在请求量大并且频繁的访问数据库的情况下,就会在造成速度慢甚至请求异常,所以基于内存的存储方式开始新兴起来,其中memcache就是一个存储简单key-value数据结构的高性能的分布式内存对象缓存系统,这样我们的问题得到了很多的解决,但是随着业务的发展,发现...原创 2019-03-25 14:01:29 · 151 阅读 · 0 评论 -
【Redis】——哨兵模式(6)
前面我们已经说到了主从模式,虽然能够解决很多的问题,但是依然存在不容易动态扩展、高可用性等问题,那么哨兵模式就应运而生。sentinel,中文名是哨兵,能够实现redis集群的高可用性,本身就是分布式的,所以即使部分哨兵节点挂掉了,整个哨兵集群还是可以用的,在故障转移时,判断一个master node节点是否宕机了,需要大部分的哨兵同意才行,涉及到分布式选举的问题,哨兵主要有以下功能:集群...原创 2019-10-07 12:17:12 · 164 阅读 · 1 评论 -
【Redis】——分布式锁(9)
实例代码地址,请前往:https://gitee.com/GuoqingLee/distributed-seckillredis官方文档地址,请前往:http://www.redis.cn/topics/distlock.html前言关于分布式锁的实现,目前主流方案有以下三类:1、基于数据库的乐观锁;2、基于redis实现的锁服务;3、基于zookeeper的实现;本文...原创 2019-07-07 16:56:10 · 157 阅读 · 0 评论