代码编织梦想

在这里插入图片描述

sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点.
哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)

哨兵架构搭建

1、复制一份sentinelconf文件
cp sentinelconfsentinel-26379.conf

2、将相关配置修改为如下值: port 26379 daemonize yes
pidfile "/var/run/redis-sentinel-26379.pid"
loefile "26379.log"
dir "/usr/local/redis-5.0.3/data"

#sentinel monitor <master-name><ip><redis-port><quorum>

#quorum是一个数字,指明当有多少个sentinel认为一个master失效时(值一般为:sentinel总数/2+1),master才算真正失效

sentinel monitor mymaster 192.168.0.60 6379 2

3、启动sentinel哨兵实例
src/redis-sentinel sentinel-26379.conf

4、查看sentinel的info信息 src/redis-cli -p 26379127.0.0.1:26379>info
可以看到Sentinel的info里已经识别出了redis的主从

5、可以自己再配置两个sentinel,端口26380和26381,注意上述配置文件里的对应数字都要修改

info命令查看redis服务运行信息,分为9部分,分别如下:

1)Server 服务器运行的环境参数
2)Clients 客户端相关信息
3)Memory 服务器运行内存统计数据
4)Persistence 持久化信息
5)Stats 通用统计数据
6)Renlication 主从复制相关信息
7)CPU CPU使用情况
8)Cluster 集群信息
9)KeySpace 键值对统计数量信息

连接样例代码

public class JedisSentinelTest {
	public static void main(string[] args) throws IOException {

        JedisPoolConfig config=new JedisPoolConfig();
        config.setMaxTotal(20);
        config.setMaxIdle(10):
        config.setMinIdle(5);

		string masterName ="mymaster".
        Set<String> sentinels=new Hashset<String>();
        sentinels.add(new HostAndPort("192.168.0.60",26379)tostring());
        sentinels.add(new HostAndPort("192.168.0.60" 26380)tostring());
        sentinels.add(new HostAndPort("192.168.0.60"26381tostring));
        //JedisSentinelPool其实本质跟JedisPool类似,都是与redis主节点建立的连接池
        //JedisSentinelPool并不是说与sentinel建立的连接池,而是通过sentinel发现redis主节点并与其建立连接
        JedisSentinelPool jedisSentinelPool=new JedisSentinelPool(masterName, sentinels, config, 3000,null);
        Jedis jedis = null; 
        try {
            jedis=jedisSentinelPool.getResource);
            System.out.println jedis.set("sentinel","zhuge")); 	                     				System.out.println(iedis.get("sentinel"));
        } catch(Exception e){
            e.printStackTrace();
        } finally{
            //注意这里不是关闭连接,在JedisPool模式下,Jedis 会被归还给资源池
            if(jedis != null){
               jedis.close(); 
            }
        }
            

Springboot 使用步骤

1)引入相关依赖

<dependency>
    <groupId>org.springframework.boot</groupid>
    <artifactId>spring-boot-starter-data-redis</artifactid>
</dependency>

<dependency>
	<groupId>org.apache.commons</groupid>
    <artifactid>commons-pool2</artifactid>
</dependency>

SpringBoot配置

server:
  port:8080

spring: 
  redis:
    database:
    timeout: 3000
    sentinel: #哨兵模式 
      master: mymaster #主服务器所在集群名称
      nodes: 192.168.0.60:26379 192.168.0.60:26380 192.168.0.60:26381
   lettuce:
     pool:
       max-idle: 50
       min-idle: 10
       max-active: 100
       max-wait: 1000

stringRedisTemnlate.opsForValue().set(“zhuge”+1, 1+“”):

使用详情

StringRedisTemplate与RedisTemplate详解
spring封装了RedisTemplate对象来进行对redis的各种操作,它支持所有的redis原生的api。在RedisTemplate中提供了几个常用的技口方法的使用,分别是:
1 private ValueOperations<K,Y> valueOps;
2 private HashOperationshashops:
3 private ListOperations listops;
4 private SetOperations<K,V> setops;
5 private ZsetOperationszSetOps

RedisTemplate中定义了对5种数据结构操作

1 redisTemplate.opsForValue);//操作字符串
2 redisTemplate.opsForHash();//操作hash
3 redisTemplate.opsForList();//操作list
4 redisTemplate.opsForSet();//操作set
5 redisTemplate.opsForZset();//操作有序set
StringRedisTemplate继承自RedisTemplate,也一样拥有上面这些操作。
StringRedisTemplate默认采用的是String的序列化策略,保存的key和value都是采用此策略序列化保存的

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Mao_yafeng/article/details/127020498

redis详解_yehy0525的博客-爱代码爱编程

引言 nosql,大规模分布式缓存遍天下,Internet的时代在中国由其走得前沿,这一切归功于我国特色的电商。因此nosql、大数据技术在中国应用的比国外还要前沿。从这一章开始我们将开始进入到真正的SOA

昊鼎王五:linux如何快速搭建基于哨兵模式的redis集群?_昊鼎王五的博客-爱代码爱编程_linux哨兵模式

#昊鼎王五:linux如何快速搭建基于哨兵模式的redis集群? #1.基础知识: ##1.1什么是redis? 是高速缓存服务器。 ##1.2什么是redis集群? 是实现redis服务器高可用的方案 ##

redis哨兵详解-爱代码爱编程

redis哨兵模式 sentinel哨兵模式介绍Sentinel版本Sentinel状态持久化Sentinel作用:Sentinel工作方式(每个Sentinel实例都执行的定时任务)三个定时任务主观下线客观下线配置版本号配置传播sentinel的"仲裁会"选举领头sentinel(即领导者选举)为什么要选领导者?Redis Sentinel的主从

Redis高可用–Sentinel哨兵详解-爱代码爱编程

Redis高可用–Sentinel哨兵详解 本文来自《Redis开发与运维》–付磊 / 张益军,读后收益匪浅。 Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多应用场景这种故障处理的方式是无法接受的。可喜的是Redis从2.8开始正式提供了Redis Sent

Redis集群之哨兵模式-爱代码爱编程

“锵”,上回我们讲到Redis主从模式,可谓是一山还有一山高,我来给大家讲讲Redis哨兵模式。。。 哨兵(Sentinel) 注意:此哨兵非 Alibaba Sentinel,各位看官莫要搞混! Sentinel(哨兵模式架构图) 哨兵原理 sentinel(哨兵)是用于监控redis集群中Master状态的工具,其本身也是一个

Redis高可用架构【五】-爱代码爱编程

Redis高可用架构 1. Replication(主从复制)1.1. 概述1.2. 主从复制作用1.3. 主从复制的流程1.4. 主从复制的拓扑结构1.5. 一主多从部署1.5.1. 环境说明1.5.2. master-slave配置1.5.3. 查看master、slave1、slave2的状态1.5.4. 验证主从复制2. Sentinel(

mysql 哨兵模式_redis主从配置以及哨兵模式详解-爱代码爱编程

1.主从简介 1.主从用法 像MySQL一样,redis是支持主从同步的,而且也支持一主多从以及多级从结构。 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来承担。 redis的主从同步是异步进行的,这意味着主从同步不会影响主逻辑,也不会降低redis的处理性能。 主从架构中,可以考虑关闭主服务

Redis高可用群集---三种模式详解(主从、哨兵、Cluster)-爱代码爱编程

文章目录 一、redis群集介绍二、Redis三种模式介绍1.主从模式1.1 流程图2.哨兵模式(Sentinel)2.1 哨兵模式集群架构2.2 哨兵模式主要功能2.3 哨兵们监控整个系统节点的过程(图2)2.4 哨兵模式下的故障迁移3.Cluster群集总结 一、redis群集介绍 redis是一个开源的kevvalue存储系统,受到了

redis 分布式缓存 详解-爱代码爱编程

1、Redis概述 1.1、NoSQL NoSQL(Not Only SQL),意即不仅仅是SQL, 泛指非关系型的数据库。 1.2、Redis安装 首先需要从Redis官网上下载Redis的源码包,将下载的包上传到Linux,之后将gz文件进行解压。 # 解压gz文件 tar -zxvf redis-6.2.6.tar.gz # 进入目录 c

Redis6.0 高级-爱代码爱编程

文章目录 Redis_Jedis的使用Redis与Spring Boot整合Redis_事务_锁机制_秒杀Multi、Exec、discard命令事务的错误处理WATCH key [key ...] 命令unwatch 命令Redis事务三特性Redis持久化之RDBRDB是什么备份是如何执行的ForkRDB持久化流程dump.rdb文件RDB的优

Redis知识点详解-爱代码爱编程

NoSQL 问题现象 海量用户高平发关系型数据库 性能瓶颈:磁盘IO性能低下扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群解决思路 降低磁盘IO次数,越低越好 —— 内存存储去除数据间关系,越简单越好 —— 不存储关系,仅存储数据Nosql NoSQL:即Not-Only-SQL(泛指沸关系型数据库),作为关系型数据库的补充。 作用:应对基

Redis 详解-爱代码爱编程

Redis redis 简介 redis 采用的是单线程的 KV 模型,由 C 语言编写。由于redis采用了单线程,避免了不必要的线程切换所带来的性能消耗,且不用考虑加锁问题(没有加锁和释放锁的操作)。并且完全是基于内存的,所以性能比较好。 1. Redis 中的事务 1.1 什么是事务? 事务指的是单独的隔离操作,事务中的命令要么都执行,要么

基于mysql,redis,mq,es的高可用方案解析_mysql proxy 消息队列-爱代码爱编程

高可用对于当下的系统而言,可以说是一个硬指标,常年专注于业务开发的我们,对于高可用最直观的感觉可能就是祈祷应用不要出问题,不要报错;即便有问题,也最好不是我们的业务代码逻辑导致的,如果是服务器、DB、中间件(如注册中心、配置中心等)的异常那就抛给对应的sre, dba;然而常在河边走,哪有不湿鞋,为了保障服务的高可用,我们可以从哪些方面进行努力呢? 本文

redis常用命令_redis exit命令-爱代码爱编程

文章目录 1.Redis的配置与连接2.Redis的使用3.Redis的基本命令4.Redis的五大数据类型5.学习redis.conf6.Redis持久化 1.Redis的配置与连接 在redis