Redis哨兵(Sentinel) 1 原理怎么实现高可用?第一个对于服务器来说,能够实现主从自动切换;第二个,对于客户端来说,如果发生了主从切换,它需要获取最新的master节点。这个怎么实现呢?这里面应该要有一个管理redis节点状态的角色,而且具备路由功能。比如RocketMQ是通过nameserver来实现的。思路:创建一台监控服务器来监控所有redis服务节点的状态,比如,master节点超过一定时间没有给监控服务器发送 2023-03-04 中间件 > Redis #redis #缓存
Redis持久化机制 Redis速度快,很大一部分原因是因为它所有的数据都存储在内存中。如果断电或者宕机,都会导致内存的数据丢失。为了实现重启后数据不丢失,redis提供了两种持久化的方案,一种是RDB快照(Redis Database),一种是AOF(Append Only File)。持久化是redis跟memcache的主要区别之一。 1. RDBRDB是redis默认的持久化方案(注意如果开启了AOF,优先用A 2023-03-04 中间件 > Redis #redis #缓存
Redis常见问题 1 数据一致性问题1.1 缓存使用场景针对读多写少的高并发场景,可以使用缓存来提升查询速度。使用redis作为缓存的时候,一般流程是这样的: 如果数据在redis存在,应用就可以直接从redis拿到数据,不用访问数据库。 应用新增了数据,只保存在数据库中,这个时候redis没有这条数据。如果redis里面没有,先到数据库查询,然后写入到redis,再返回给应用。 1.2 一致性 2023-03-04 中间件 > Redis #redis #缓存
nacos安装与配置 Nacos版本:2.0.4 nacos2.x已不支持ribbon,使用nacos2.x需要手动引入LoadBalancer 1. 单机版1.1 package(基于CentOS)1234567891011121314151617#(1)下载nacos-server的二进制包,比如:nacos-server-2.0.4.tar.gz#(2)解压并进入bin目录unzip nacos-server 2023-02-26 spring框架 > springcloud > nacos #java #springcloud #nacos
nacos注册中心 Nacos版本:2.0.4 nacos2.x已不支持ribbon,使用nacos2.x需要手动引入LoadBalancer https://nacos.io/zh-cn/docs/sdk.html 12345#服务注册curl -X POST 'http://localhost:8848/nacos/v1/ns/instance?serviceName=nacos.naming.se 2023-02-25 spring框架 > springcloud > nacos #springcloud #nacos #服务注册中心
Lua脚本-redis 1 在redis中调用lua脚本使用eval方法,语法格式: 1234567eval lua-script key-num [key1 key2 key3 ...] [value1 value2 value3 ...]//eval 代表执行Lua语言的命令//lua-script 代表Lua语言脚本内容//key-num 表示参数中有多少个key,需要注意的是Redis中的key是从1开始的,如 2023-02-25 Lua #redis #lua
Springboot启动流程 1. 启动方式12345678910111213141516171819@SpringBootApplication public class Application { //方式一 public static void main(String[] args) { SpringApplication.run(Application.class, arg 2023-02-25 spring框架 > Springboot #java #springboot
架构演进以及版本更迭 1. 架构演进1.1 单体架构 1.2 垂直化拆分按功能模块进行垂直化拆分 1.3 集群+负载均衡 1.4 SOASOA:Service Oriented Architecture ESB:Enterprise Service Bus 企业服务总线。ESB就相当于是一根管道,主要是为了集成不同协议的服务,使得不同服务之间能够彼此调用 1.5 微服务 2. 微服务架构下问题的解决方案Cloud 2023-02-04 spring框架 > springcloud #java #springcloud