我的编程空间,编程开发者的网络收藏夹
学习永远不晚

redis学习

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

redis学习

redis学习

邻近年底,决定辞职,自认为即使没有找到很满意的工作,也应该不会差。事实是有点自信回头,虽然找到了工作,但途中也受到了打击,不得不承认学习的激情不知何时,渐渐熄灭。直到认识一个女生,她让我对未来充满着信心。曾今何时,也在这写过一些技术笔记,如今已烟消云散,昨日已去,来日可期。后面我将吧自己日常积累的技术知识,记录在这里,利人利己。废话到此为止,下面总结一下面试遇到的几个问题。

redis穿透与雪崩?

   1. 穿透:
        理解:当redis作用于数据缓存的时候,缓存的数据来源于db,而当由于key在redis中未获取到value时,则逻辑代码会从数据库中获取value,这种现象叫做缓存穿透。
             若存在大量key穿过缓存,从db获取value,则会导致数据库压力剧增,甚至瘫痪。
        方案: a.当出现大量无效key时,会从数据库获取value,使用分布式互斥锁对load db进行控制。
              b.对请求进行验证,判断是否是有效的key,比如布隆过滤器。
              c.无论key是否取到值,直接返回null。对不太稳定的缓存设置过期时间,如果缓存过期,异步起一个线程从db中获取数据。
        比较:待补充
    2。雪崩:
        理解:redis服务器宕机
        方案:redis集群,主从复制,哨兵模式,redis-cluster
        比较:
              主从复制:读写分离,一旦主机宕机,需要手动进行从机升级,并且容易出现短时间无法写的问题
              哨兵模式:完善读写分离的技术,实现当主机宕机后,自动进行master选举,但数据集中在master中,当master压力过大,很难扩容,通过哨兵+主从复制可以实现redis的高可用,但            
                      很难实现高并发即分散服务器压力,在对并发量要求不大,推荐使用
                redis-cluster:可实现高可用,高并发,扩容,缩容,maseter选举,在高并发情况下,首选cluster搭建redis集群。
        

redis 集群搭建总结(具体搭建步骤,网上很多不细述:https://my.oschina.net/lyyjason/blog/1842002--cluster搭建地址)

    ##redis主从复制与哨兵模式搭配使用:前者提供高可用,后者提供master选举
    ##redis-cluster =主从复制+哨兵模式+高并发+可扩展。
    1.下载redis
    2.安装gcc  执行make命令安装redis
    主从复制:
           启动多个redis  ,slaveof ip port 设置master ,info replication 查看redis主从信息
           注意项:1.当master存在密码是 slave 必须配置文件masterauth设置主机的密码,或者使用config set masterauth手动设置密码,不然即使slaveof执                    
                    行成功,master-link-status 显示为down,设置完masterauth密码后则显示up。
                  2.当主从复制,master宕机,必须手动切换slave为master不然从机不会进行master选举,从机master-link-status变成down,会一直等待master启动,master-link-            
                    status恢复成up
                  3.master 默认可写可读,slave 默认只读,可以修改slave-read-only  yes:只读 no:读写
    哨兵模式:master宕机自动选举master
            注意项:master宕机重启后 会作为slave自动同步到选举后的master上 ,大件事 master和slave密码要保持一致,不然选举后将slave切换成maseter会因此失败。
    cluster集群:密码也需要保持一致,而且需要修改/usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb             
                (https://img2018.cnblogs.com/blog/1909126/201912/1909126-20191229210642240-329425897.png)修改成正确的密码即可
            cluster:每个key通过CRC16(key)%16384来决定放置哪个槽,共有16384个槽被分配到不同的master中(slave中是没有分配曹的),从而将key放入对应的master中,当master 
                    宕机,其slave会升级成为master,并将原master的曹与数据转移到新的master上。
            扩容:就是添加新的master-slave  让后将其他master的槽分摊给新家的master即可,槽中的数据也会随之转移。
            缩容:相反。
            命令:  查看集群节点
                    cluster nodes

                    查看key对应的slot
                    cluster keyslot key

                    查看slot和节点的对应关系
                    cluster slots
    

redis实现分布式锁,放值重复请求,分布式id等待续。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

redis学习

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

redis学习

邻近年底,决定辞职,自认为即使没有找到很满意的工作,也应该不会差。事实是有点自信回头,虽然找到了工作,但途中也受到了打击,不得不承认学习的激情不知何时,渐渐熄灭。直到认识一个女生,她让我对未来充满着信心。曾今何时,也在这写过一些技术笔记,如今已烟消云散,昨日已
redis学习
2021-09-30

redis深入学习

Redis持久化官方文档:https://redis.io/topics/persistence1.RDB和AOF优缺点RDB: 可以在指定的时间间隔内生成数据集的时间点快照,把当前内存里的状态快照到磁盘上优点: 压缩格式/恢复速度快,适用于备份,主从复制也是
redis深入学习
2015-11-22

学习之Redis(一)

一、redis简介  一般学习,最好先去官网,之所以建议看官网,是因为这是一手的学习资料,其他资料都最多只能算二手,一手资料意味着最权威,准确性最高。https://redis.io/topics/introduction。如果像我一样,英语不好的童鞋,不要紧
学习之Redis(一)
2018-05-31

Redis学习笔记记录

基础篇什么是Redis及快速理解Redis的使用Redis解决的问题及Redis的特性Redis的应用场景及正确安装与启动Redis配置、启动、操作、关闭及版本选择字符串使用与内部实现原理字典使用与内部实现原理列表使用与内部实现原理集合使用与内部实现原理有序集
Redis学习笔记记录
2016-01-10

Redis学习之持久化

简介持久化是将内存中的瞬时数据,转换为存储在磁盘上的持久数据。redis是一个将数据存储在内存中的数据库,这也是它高效率的原因之一。但是将数据存储在内存,如果遇到突发事件,可能会造成数据的丢失。所以我们需要将数据持久化,等下次redis启动时,再次将数据加载进
Redis学习之持久化
2019-03-12

Redis学习笔记——Redis基础介绍

纸上得来终觉浅,绝知此事要躬行。——陆游《冬夜读书示子聿》redis基础概念redis是一个字典结构的存储服务器。以字典结构键值对(key=>value)形式存储数据,并允许其他应用通过TCP协议读写字段中的内容。我们可以把 redis 存储数据的形式想象成一
Redis学习笔记——Redis基础介绍
2018-08-28

redis 命令学习记录

杀掉客户端 CLIENT KILL TYPE normalCLIENT KILL TYPE slaveCLIENT KILL TYPE pubsub
redis 命令学习记录
2017-03-16

Redis学习笔记(四)--安全

Redis学习笔记(四)--安全 基于Redis6之前版本 一、设置数据库密码 1、配置文件“redis.conf”修改,需重启服务器 在配置文件中“redis.conf”设置"requirepass 123456" 2、通过"config get requi
Redis学习笔记(四)--安全
2017-03-22

Redis学习笔记(二) 链表

链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点来灵活地调整链表的长度。redis中链表应用广泛,如list中就使用了链表。每一个链表节点使用listNode结构标识(双向链表):typedef struct listNode{
Redis学习笔记(二) 链表
2017-01-27

Redis学习笔记(三) 字典

Redis的字典使用哈希表作为底层实现,一个哈希表中可以有多个哈希表节点,而每个哈希节点就保存在字典中的一个键值对。redis字典所用的哈希表由disht结构定义。typedef struct dictht{ dictEntry **table;//哈希
Redis学习笔记(三) 字典
2014-05-20

Redis学习笔记(六) 对象

前面我们看了Redis用到的主要数据结构,如简单动态字符串(SDS)、双向链表、字典、压缩列表、整数集合等。但是Redis并没有直接使用这些数据结构来实现键值对,而是基于这些数据结构创建了一个对象系统,这个系统包括字符串对象、列表对象、哈希对象、集合对象、有序
Redis学习笔记(六) 对象
2021-06-25

Redis学习笔记:Redis在Windows下的安装

一、Redis下载    官网下载地址:http://redis.io/download    GitHub下载地址:https://github.com/MSOpenTech/redis/tags    备注:现在的Redis官网没有Windows版的下载链
Redis学习笔记:Redis在Windows下的安装
2019-02-14

Redis学习笔记:Redis在C#中的使用

1、新建一个WinForm窗体,命名为Main:    2、在NuGet中安装StackExchange.Redis。    3、添加一个类,命名为RedisHelper。 public static class RedisHelper {
Redis学习笔记:Redis在C#中的使用
2017-01-15

Redis学习笔记(十) 客户端

Redis服务器是典型的一对多服务器程序:一个服务器可以与多个客户端建立网络连接,每个客户端可以向服务器发送命令请求,而服务器则接收并处理客户端发送的命令请求,并向客户端返回命令回复。通过使用由I/O多路复用技术实现的文件事件处理器,Redis服务器使用单线程
Redis学习笔记(十) 客户端
2022-04-06

柔性数组(Redis源码学习)

柔性数组(Redis源码学习)1. 问题背景在阅读Redis源码中的字符串有如下结构,在sizeof(struct sdshdr)得到结果为8,在后续内存申请和计算中也用到。其实在工作中有遇到过这种 struct结构 + 应用数据的情况,但没有意识到自己使用的
柔性数组(Redis源码学习)
2019-06-16

Redis学习笔记:基础知识

一、NoSQL和关系型数据库区别    NoSQL非关系型数据库:Redis、MongoDB、HBase等,基于Key-Value存储,采用命令操作。    关系型数据库:Oracle、MySQL、DB2、SQL Server等,基于表结构存储,采用SQL操作
Redis学习笔记:基础知识
2020-08-16

编程热搜

目录