• redis笔记


    什么是redis?

    是一个使用 C 语言编写的,键值对数据库。 Redis 的数据是存在内存中的,所以读写速度非常快。

    redis有哪些优缺点?

    优:读写性能优异,数据持久化(RDB,AOF),数据类型丰富(string,hash,list),支持主从复制

    缺:受物理内存限制,不具备自动容错和恢复功能。

    Redis的应用场景有哪些?

    缓存:频繁被访问的数据。排行榜:用sortSet(有序集合)。消息队列:邮件发送

    redis为什么快?

    完全基于内存、数据结构简答、单线程避免了上下文切换

    缓存不一致怎么办?

    先删除缓存,再更新数据库。如果数据库更新失败了,那么数据库中是旧数据,缓存中是空的,那么 数据不会不一致。因为读的时候缓存没有,所以去读了数据库中的旧数据,然后更新到缓存中。

    redis的缓存使用会出现什么问题,对应解决方案有什么?

    缓存穿透:查询数据库里不存在的数据。缓存空值

    缓存雪崩:某一时间段缓存集中失效。热点数据不过期,不同的过期时间

    缓存击穿:频繁访问热点数据,失效时就落到了数据库。不过期

    redis持久化方式?

    RDB:对内存中数据库的状态进行快照。AOF:以追加的形式把redis的命令写入文件

    两种持久化优缺点

    RDB:用单独子进程来进行持久化不会 IO 操作,保证了 redis 的高性能。可能会丢失数据

    AOF(appendonly):更完整的保存数据。Aof文件大恢复速度慢

    redis如何实现ACID?

    redis 可以实现原子性,一致性,隔离性。但是不能保证持久性。

    原子性,multi会先把命令放到队列里面,然后exec执行命令。发生错误,redis不支持事务回滚

    一致性, RDB/AOF。

    隔离性,单线程上执行事务,并串行执行事务。watch机制。

    持久性,AOF模式下,aof选项设置为always才有持久性。

    缓存的常见删除策略有哪些?

    定期删除(隔一段时间进行检查)惰性删除(不用管,请求时判断)

    redis的内存淘汰策略是什么?(内存)

    不允许写入(默认),移除最少使用的,快过期的数据任意移除,快过期的数据挑选移除,任意淘汰

    LRU=缓存置换

    如果一个数据在最近一段时间没有被用到,那么将来被使用到的可能性也很小,所以就可以被淘汰掉。

    Redis命令

    字符串   set设置    get获取

    哈希 hmset设置 hgetall获取

    列表 lpush设置 lrange获取

    集合 sadd设置 smembers获取

    有序集合 zadd设置 zrange获取

    Auth 检查密码是否正确

    Ping 查看服务是否运行

    Quit关闭连接

    事务

    Watch监听,事务执行前发生改变就不继续了

    批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

    Multi开始事务

    Exec触发事务

    Discrad取消事务

    分布式锁特性的实现?

    「互斥性」: 任意时刻,只有一个客户端能持有锁。

    「锁超时释放」:持有锁超时,可以释放,防止不必要的资源浪费,也可以防止死锁。

    「可重入性」:一个线程如果获取了锁之后,可以再次对其请求加锁。

    「高性能和高可用」:加锁和解锁需要开销尽可能低,同时也要保证高可用,避免分布式锁失效。

    「安全性」:锁只能被持有的客户端删除,不能被其他客户端删除

    实现:SETNX + EXPIRE

  • 相关阅读:
    降维算法实战项目(1)—使用PCA对二维数据降维(Python代码+数据集)
    DS90UH925QSQX 串行器,解串器 48WQFN 汽车应用
    云计算-Linux-mv,cat,less,head,tail,rm命令学习
    C语言C位出道心法(五):内存管理
    GPT实战系列-P-Tuning本地化训练ChatGLM2等LLM模型,到底做了什么?(一)
    Python - 基础语法|逻辑语句|函数定义|列表|元组|字符串|切片|集合|字典
    测试流程如何有效落地?
    win10下yolox tensorrt模型部署
    计算机毕业设计Java棉花(源代码+数据库+系统+lw文档)
    Django日志集成 & MySQL/Redis 异常捕获
  • 原文地址:https://blog.csdn.net/qq_41564405/article/details/126322648