Redis
文章平均质量分 71
我叫向同学
永远不要停下前进的脚步
展开
-
【Redis】缓存穿透和雪崩
服务的高可用问题! 在这里我们不会详细的区分析解决方案的底层! Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。 如果对数据的一致性要求很高,那么就不能使用缓存。另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。 缓存穿透(查不到) 概念 缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持原创 2021-06-14 19:33:13 · 88 阅读 · 2 评论 -
【Redis】哨兵模式
(自动选举主机的模式) 概述 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。Redis从2.8开始正式提供了Sentinel(哨兵) 架构来解决这个问题。 谋朝篡位的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库。 哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送原创 2021-06-14 18:37:31 · 91 阅读 · 0 评论 -
【Redis】主从复制
概念 主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点 (master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。 Master以写为主,Slave 以读为主。 默认情况下,每台Redis服务器都是主节点; 且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。()。 主从复制的作用主要包括: 1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。 2、故障恢复:原创 2021-06-14 17:23:50 · 95 阅读 · 0 评论 -
【Redis】Redis发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。微信、微博、关注系统! Redis 客户端可以订阅任意数量的频道。 订阅/发布消息图: 第一个:消息发送者, 第二个:频道 第三个:消息订阅者。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的 关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个原创 2021-06-14 16:30:59 · 109 阅读 · 0 评论 -
【Redis】Redis持久化AOF与RDB
Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么但服务器进程退出,进程中的数据库状态也会消失,所以Redis提供了持久化功能。 RDB(Redis DataBase) 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是快照snapshot,他恢复时是将快照文件直接读取到内存中,Redis会单纯创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性原创 2021-06-14 14:43:37 · 429 阅读 · 0 评论 -
【Redis】Redis.config配置
Redis启动,就通过配置文件来启动的。 单位 并且单位不区分大小写 包含 就是java中的import。 网络配置 通用配置 快照 持久化,在规定的时间内,执行了多少次操作,则会持久化到文件.rdb .aof。 maxmemory-policy 六种方式 1、volatile-lru:只对设置了过期时间的key进行LRU(默认值) 2、allkeys-lru : 删除lru算法的key 3、volatile-random:**随机删除即将过期key 4、allkeys-random:*原创 2021-06-14 11:34:51 · 409 阅读 · 0 评论 -
【Redis】SpringBoot整合Redis
SpringBoot操作数据:spring-data jpa jdbc redis。。。。 直接看spring 官方吧。上图 新建一个springboot项目 记得勾选NoSQL 下的Spring-Data Redis 说明:在springBoot2.x 版本之后 原来使用的jedis 被替换为lettuce jedis:采用的是直连,多个线程操作的话,是不安全的,想要避免不安全,使用jedis pool连接池。BIO lettuce:采用netty,实例可以在多个线程中共享,不存在线程不安全的情况。原创 2021-06-14 00:50:41 · 370 阅读 · 4 评论 -
【Redis】测试redis事务
Redis事务 MULTI、EXEC、DISCARD和WATCH命令是Redis事务功能的基础。Redis事务允许在一次单独的步骤中执行一组命令,并且可以保证如下两个重要事项: Redis会将一个事务中的所有命令序列化,然后按顺序执行。Redis不可能在一个Redis事务的执行过程中插入执行另一个客户端发出的请求。这样便能保证Redis将这些命令作为一个单独的隔离操作执行。 > 在一个Redis事务中,Redis要么执行其中的所有命令,要么什么都不执行。因此,Redis事务能够保证原子性。EXEC命令原创 2021-06-13 22:12:55 · 144 阅读 · 0 评论 -
【Redis】通过Jedis操作redis
什么是Jredis Jedis 是 Redis 官方首选的 Java 客户端开发包。使用Java操作Redis的中间件。 测试 使用IDEA创建一个项目 导入Jedis的包 <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis<原创 2021-06-13 20:29:03 · 1244 阅读 · 1 评论