Redis
文章平均质量分 62
@所谓伊人
关关雎鸠,在河之洲。
展开
-
分布式会话拦截器
一、构建拦截器1.在controller层创建一个类UserTokenInterceptorpublic class UserTokenInterceptor implements HandlerInterceptor { /** * 拦截请求,在访问controller调用之前 * @param request * @param response * @param handler * @return * @throws Exc原创 2021-08-06 13:27:04 · 224 阅读 · 0 评论 -
实现Redis用户会话、SpringSession实现用户会话
一、实现Redis用户会话七、集群分布式系统会话(图)注册或登录时,将token信息保存在redis里//实现用户的redis会话 String uniqueToken = UUID.randomUUID().toString().trim(); redisOperator.set(REDIS_USER_TOKEN + ":" +userResult.getId(), uniqueToken);...原创 2021-08-06 11:32:34 · 517 阅读 · 0 评论 -
Redis缓存雪崩,穿透、multiGet 批量查询优化、pipeline 批量查询优化
一、缓存穿透的解决方案为了演示缓存穿透,这里设置的redis是单机单实例。二、缓存穿透之布隆过滤器布隆过滤器能够迅速判断一个元素是否存在于集合里。布隆过滤器缺点:1.会有1%的误判率,误判概率越低,数组所占用的空间越长。2.布隆过滤器的数据只能添加,不能移除,主要是由于多个数据可能存在于同一个位置,比如subCat:2、subCat:3。3.维护起来比较麻烦,代码复杂。三、缓存雪崩与预防1.什么是缓存雪崩?当在同一时刻缓存里有大量的key过期时间结束,此时有大原创 2021-08-05 11:48:24 · 8563 阅读 · 1 评论 -
什么是slot槽节点、Springboot集成Redis集群
一、什么是slot槽节点slots:槽,用于装数据,主节点有,从节点没有1.怎么分配slot? ——平均分配需要注意的是,槽节点是分配给master节点的,slave节点没有。2.槽slot怎么存储?槽slot分配,遵循一致性hash原则。3.查看集群信息的另一种方法,进入集群客户端:4.测试在203这个节点:结论:不论在哪个节点,master也好,slave也好,都可以连接集群客户端,且必须在集群客户端下操作数据,才能写入、读取。写入数据时,red...原创 2021-08-04 22:07:17 · 614 阅读 · 0 评论 -
SpringBoot 集成Redis哨兵、Redis-Cluster 集群、搭建Redis的三主三从集群模式
一、SpringBoot 集成Redis哨兵启动程序后,设置key,value拿到结果:查看redis库:二、Redis-Cluster 集群三、搭建Redis的三主三从集群模式需要搭建6台服务器集群,如下:192.168.1.201、192.168.1.202、192.168.1.203、192.168.1.204、192.168.1.205、192.168.1.2061.开启集群模式2.每个节点处于集群中的配置文件,与其他节点的关系...原创 2021-08-04 19:00:09 · 1013 阅读 · 1 评论 -
Redis 哨兵机制与实现
1.将安装目录下的sentinel.conf拷贝到/usr/local/redis/2. protected-mode no 不使用保护模式,保证其他节点都能访问哨兵sentinel monitor imooc-master 192.168.1.33 6379 2 ip、端口是redis主节点的,2标识有两个哨兵节点,当它们都检测到主节点宕机后,其中一台哨兵会开启故障转移,将从节点变为主节点。 imooc-master是自己起的一个名称3.配置主节点密码...原创 2021-08-03 18:38:46 · 405 阅读 · 0 评论 -
Redis无磁盘化复制原理解析、Redis 缓存过期处理与内存淘汰机制
一、Redis无磁盘化复制原理解析从内存复制到内存,用socket传输。磁盘不好时,网络带宽性能好时,可以选择无磁盘化复制。无磁盘化复制目前处在试验阶段。配置repl-diskless-sync yes //开启无磁盘化复制repl-diskless-sync-delay 5 //等待5秒钟,再开始无磁盘化同步,目的是等待所有slave服务器都连接上master服务(socket通信)二、Redis 缓存过期处理引子计算机内存有限,越大越贵,Redis的高并发高...原创 2021-08-03 15:10:15 · 712 阅读 · 0 评论 -
Redis 主从复制原理解析、多虚拟机克隆方案、搭建Redis主从复制(读写分离)
主从模式1.2.一主二从最常见3.原创 2021-08-03 12:16:12 · 1367 阅读 · 0 评论 -
Redis的持久化机制
一、Redis 的发布(pub)与订阅(sub)发布与订阅信息,是redis的所具备的一个功能,但不是redis的主要功能,发布、订阅用的多的是mq中间件。二、Redis的持久化机制 - RDBRDB: Redis DataBase1. 什么是RDBRDB:每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存。如果宕机重启,那么内存里的数据肯定会没有的,那dis后,则会恢复。2. 备份与恢复内存备份 --> 磁盘临时文件临时文件 -原创 2021-08-02 18:17:30 · 122 阅读 · 0 评论 -
SpringBoot整合Redis实战
1. 引入 redis 依赖<!-- 引入 redis 依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>2. 配置redisspring: redi...原创 2021-08-02 17:05:22 · 225 阅读 · 0 评论 -
聊一聊多路复用器,阻塞和非阻塞
以下截图来自慕课网。Redis 架构单线程模型原理解析原创 2021-07-30 10:54:00 · 137 阅读 · 0 评论 -
Redis的数据类型
一、string1.string 字符串string: 最简单的字符串类型键值对缓存,也是最基本的2.key相关keys *:查看所有的key (不建议在生产上使用,有性能影响)type key:key的类型3.string类型get/set/del:查询/设置/删除set rekey data:设置已经存在的key,会覆盖setnx rekey data:设置已经存在的key,不会覆盖set key value ex time:设置带过期时间的数据expire原创 2021-07-28 22:16:10 · 163 阅读 · 0 评论 -
Redis命令行客户端基本使用
1.从脚本里可以看出redis为我们提供了client工具2.在命令行执行redis-cli,进入客户端命令行模式3. 我们可以重新打开一个shell,可以看到redis-cli的进程4.在redis命令行set键值对,提示没有授权,这说明我们还需要输入密码5.输入密码auth imooc123之后再设置值,提示ok6.通过key获取value,删除key-value7.ctrl+C就可以退出redis的shell8. 停止redis服务,...原创 2021-07-27 22:45:14 · 607 阅读 · 0 评论 -
安装与配置Redis
1.将最新的redis包上传至linux服务器,解压2.安装gcc-c++依赖3.make && make install4.cp redis_init_script /etc/init.d/ #以方便后续修改启动redis文件5.mkdir /usr/local/redis -p6.cp redis.conf /usr/local/redis7.cd /usr/local/redis/8.修改配置文件redis.confvi red...原创 2021-07-27 21:26:23 · 83 阅读 · 0 评论 -
分布式缓存方案与技术选型:Redis VS Memcache VS Ehcache
一、Ehcache优点:基于java开发;基于JVM缓存;简单、轻巧、方便缺点:集群不支持;分布式不支持二、Memcache优点:简单的key-value存储,只支持字符串类型;内存使用率比较高;多核处理,多线程缺点:无法容灾,数据不能持久化三、Redis优点:丰富的数据结构;持久化;主从同步、故障转移;内存数据库缺点:单线程;单核(redis在6.0之前采用单线程)...原创 2021-07-27 15:51:33 · 193 阅读 · 0 评论 -
《redis设计与实现》——【第一部分 数据结构与对象】简单动态字符串
最近看了redis底层实现相关的书,今天来总结一下简单动态字符串,SDS(simple dynamic string)。一、SDS结构图11.free:剩余字节数,len:str的长度 redis作为读写数据频繁的使用工具,读写数据的效率必定要跟上去,sds结构的设计,就使得读写效率变得很快。二、获取字符串的长度的时间复杂度是O(1),直接拿到len的值就行三、杜绝缓冲区溢出 由于sds在进行字符串操作之前都会检查一下内存,如果内存不够,...原创 2021-03-29 20:44:05 · 117 阅读 · 0 评论