【学习笔记】Redis
文章平均质量分 65
古正风
与其心生敬佩,不如自己便是那样。
展开
-
【Redis】缓存穿透、缓存击穿和缓存雪崩
Redis缓存穿透和雪崩Redis缓存的使用,极大的提高了应用程序的性能和效率,特别是数据查询等。但同时,它也带来了一些问题。其中,最主要的问题就是数据一致性,从严格意义上来讲,这个问题是无解的。如果对数据一致性要求很高,那么就不能使用缓存。另外一个典型的问题就是:内存穿透,内存击穿和内存雪崩问题。目前,业界也都有比较流行的解决方案。缓存穿透—查不到缓存穿透的就是用户想要查询一个数据,发现Redis中没有,也就是缓存没有命中,于是向持久层数据库发起查询,发现也没有这个数据,于是本次查询失败。当原创 2022-05-22 15:51:39 · 429 阅读 · 2 评论 -
【Redis】主从复制(哨兵模式)
Redis主从复制**主从复制:**指的是将一个Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)。 数据的复制是单向的 ,只能从主节点到从节点。Master以写为主,Slave以读为主。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或者没有从节点),但一个从节点只能有一个主节点。主从复制的作用:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式故障恢复:原创 2022-05-22 15:46:12 · 573 阅读 · 2 评论 -
【Redis】发布-订阅功能
Redis发布订阅Redis发布订阅(pub/sub)是一种 消息通信模式 :发布者(pub)发送消息,订阅者(sub)接受消息。应用: 微信、抖音等的关注系统!Redis客户端可以订阅任意数量的频道。发布订阅模型下图展示了频道channel1,以及订阅这个频道的三个客户端 – client2 client5和client1之间的关系: 当有新消息通过PUBLISH命令发送给频道channel1时,这个消息就会被发送给订阅他的三个客户端:相关命令#订阅给定的一个或多个频道的信息sub原创 2022-05-22 15:39:09 · 393 阅读 · 2 评论 -
【Redis】持久化(RDB、AOF)
Redis的持久化Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以Redis提供了持久化的功能RDB (Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中Redis会单独创建(fork)一个子进程来进程持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上一次持久化好的文件。整个过程中,主进程是不进行任何I原创 2022-05-21 15:15:04 · 109 阅读 · 2 评论 -
【Redis】官方推荐的基于C接口hiredis
hiredishiredis是Redis官方推荐的基于C接口的客户端组件,它提供接口,供c语言调用以操作数据库。//头文件#include <hiredis/hiredis.h>//连接redis数据库,参数为ip地址和端口号,默认端口6379.该函数返回一个redisContext对象redisContext *redisConnect(const char *ip, int port);//执行redis命令,返回redisReply对象void *redisCommand原创 2022-05-21 15:12:46 · 1731 阅读 · 3 评论 -
【Redis】事务
事务事务的本质: 一组命令的集合!一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行!一次性,顺序性,排他性,执行一系列的命令!MySQL中的事务,要么同时成功,要么同时失败,必须保证原子性!Redis 事务可以一次执行多个命令, 并且带有以下三个重要的保证:批量操作在发送 EXEC 命令前被放入队列缓存。收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。一个事务从开始到原创 2022-05-15 17:53:37 · 90 阅读 · 2 评论 -
【Redis】五种基本类型和三种特殊类型
Redis的5个基本类型redis中的数据都是以key/value的形式存储的,五大数据类型主要是指value的数据类型字符串string#设置值set stu wang#获取值get sty#判断key是否存在exists stu#追加字符串,如果key不存在,相当于set命令,返回值为追加之后的strlenappend stu jiaxin#获取字符串的长度strlen key1#对指定key的value自增1/自减1,value要为整数值incr keydecr原创 2022-05-15 16:11:38 · 353 阅读 · 2 评论