代码编织梦想

目录

先来给大家扩展机道面试官经常会问到关于redis的题

一、redis有哪些好处

二、redis相比memcached有哪些优势

三、redis常见性能问题和解决方案

四、redis集群的工作原理

五、redis主从的原理

redis的主从配置模拟(一主双从)

一、准备环境

二、分别安装redis

三、 主配置文件修改

四、重启redis,测试


先来给大家扩展机道面试官经常会问到关于redis的题

一、redis有哪些好处

        (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
        (2) 支持丰富数据类型,支持string,list,set,sorted set,hash
        (3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
        (4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除

二、redis相比memcached有哪些优势

        (1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
        (2) redis可以持久化其数据

三、redis常见性能问题和解决方案

        (1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
        (2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
        (3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
        (4) 尽量避免在压力很大的主库上增加从库
        (5) 主从复制不要用树状结构,用单向链表结构更为稳定,即:Master(写) <- Slave1(读) <- Slave2(读) <- Slave3(读)...
        这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。

四、redis集群的工作原理

        主多从+哨兵模式(keelalived)

五、redis主从的原理

        从服务器会向主服务器发出SYNC指令,当主服务器接到此命令后,就会调用BGSAVE指令来创建一个子进程专门进行数据持久化工作,也就是将主服务器的数据写入RDB文件中。在数据持久化期间,主服务器将执行的写指令都缓存在内存中。
 
        在BGSAVE指令执行完成后,主服务器会将持久化好的RDB文件发送给从服务器,从服务器接到此文件后会将其存储到磁盘上,然后再将其读取到内存中。这个动作完成后,主服务器会将这段时间缓存的写指令再以redis协议的格式发送给从服务器。

redis的主从配置模拟(一主双从)

一、准备环境

这里我们准备三台服务器

master

slave1

slave2

关闭防火墙和selinux

做好域名解析

二、分别安装redis

安装详情请参考此文章

Redis服务-CSDN博客

三、 主配置文件修改

编辑master的redis配置文件:

cd /data/application/redis/

vim redis.conf

修改slave1的配置文件:

cd /data/application/redis/

vim redis.conf

找到主从模块

slave2的配置文件修改的地方和slave是一样的:

cd /data/application/redis/

vim redis.conf

找到主从模块

四、重启redis,测试

master

重启redis

登录redis查询主从状态

slave1

重启redis

登录redis查询主从状态

slave2

重启redis

登录redis查询主从状态

这是我们在master上创建一个key

也会同步到slave和slave2上

 希望能够帮助到大家!!

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

在使用redis做缓存时,如何确保redis与mysql数据的一致性-爱代码爱编程

在使用redis做缓存时,如何确保redis与mysql数据的一致性,实现方案总结如下: 缓存失效/过期策略(Cache Expiration): 设置Redis缓存的过期时间(TTL, Time To Live),当缓存项到期后自然失效,后续读取时会从MySQL重新加载数据,从而保证了与数据库的数据同步。 写操作同步(Write Through):

redis与自定义注解实现重复-爱代码爱编程

1、创建 SubmitLock 注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface SubmitLock { String key() default ""; } 2、注解实现 @Autowired publ

could not connect to redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接...问题解决方法之一-爱代码爱编程

一、问题描述 将Redis压缩包解压后,安装Redis过程中出现问题Could not connect to Redis at 127.0.0.1:6379:由于目标计算机积极拒绝,无法连接... 官网windows下redis开机自启动的指令如下: 1、在redis目录下执行 redis-server --service-install redi

linux系统非关系型数据库redis-爱代码爱编程

redis 介绍redis的特点:缓存 安装安装单机版redisredis的相关工具 介绍 redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内

redis核心技术与实战【学习笔记】 -爱代码爱编程

简述 Redis Cluster 能保存的数据量以及支撑的吞吐量,跟集群实例规模相关。 Redis 官方给出了 Redis Cluster 的规模上线,就是一个集群运行 1000 个实例。 其实,限定 Redis Clu

《redis核心技术与实战》学习笔记1——基本架构:一个键值数据库包含什么?-爱代码爱编程

基本架构:一个键值数据库包含什么? 文章目录 基本架构:一个键值数据库包含什么?可以存哪些数据?可以对数据做什么操作?采用什么访问模式?如何定位键值对的位置?不同操作的具体逻辑是怎样的?如何实现重启后快速提供

windows下搭建redis sentinel-爱代码爱编程

下载安装程序 下载Redis关于Windows安装程序,下载地址 下载成功后进行解压,解压如下: 配置redis和sentinel 首先复制三份redis.windows.conf,分别命名为:redis.637

【redis】深入理解 redis 常用数据类型源码及底层实现(3.详解string数据结构)-爱代码爱编程

【Redis】深入理解 Redis 常用数据类型源码及底层实现(1.结构与源码概述)-CSDN博客 【Redis】深入理解 Redis 常用数据类型源码及底层实现(2.版本区别+dictEntry & redisObject详解)-CSDN博客 紧接着前两篇的总体介绍,从这篇开始,我们结合源码依次解析下String、Hash、List、Set、

redis事务和redis管道-爱代码爱编程

文章目录 1.Redis事务1.1 Redis事务是什么,能干嘛?1.2 Redis事务和数据库事务的差异1.3 Redis事务的相关命令 2.Redis管道2.1 Redis管道是什么2.2 管道与原生

redis 单线程-爱代码爱编程

文章目录 Redis单线程架构Redis 单线程访问速度IO多路复用原理 Redis单线程架构 Redis的单线程架构的效果为:Redis的单线程是对于服务端而言的,Redis允许多个Redis用户

redis(十二)bigkey-爱代码爱编程

文章目录 游标案例生成100万测试数据key生产上限制keys */flushdb/flushall等危险命令不使用keys *:scan Biigkey案例多大算大发现bigkey渐进式删除生产调优示例