- 博客(9)
- 收藏
- 关注
原创 Redis哨兵机制
在Redis集群中,哨兵机制是实现主库和从库切换的关键机制,他有效的解决了主从复制模式下的故障转移。 哨兵机制的基本流程 哨兵机制就是Redis下的一个特殊的进程,主从库运行的同时,他也在运行。哨兵主要负责的就是三个任务:监控、选主和通知。 监控,哨兵在运行的时候,周期性地给所有的主从库发送PING命令,检测他们是否仍然在在线运行。如果从库没有在规定时间响应哨兵的PING命令,哨兵就会把从库标记为“下线状态”;同理,如果主库没有在规定时间响应哨兵的PIN...
2021-08-02 16:56:20
715
原创 Rediss数据结构
Redis对象 -- redisObject Redis有主要以下数据结构,比如简单动态字符串、双端链表、字典、压缩列表、整数集合。 Redis没有直接用这些数据来直接实现键值对的数据库,而是在这些数据结构之上又包装了一层RedisObject(对象),RedisObject 有五种对象:字符串对象、列表对象、哈希对象、集合对象和有序集合对象。 typedef struct redisObject { // 类型 unsigned type:4; // 编码 unsigned encoding:4
2021-07-20 22:42:29
274
原创 redis的持久化
目前,Redis的持久化主要有两大机制,AOF日志和RDB快照。 AOF日志是如何实现的? 1.首先AOF日志是一个写后日志,把数据写入内存中,才开始记录日志。
2021-07-19 14:35:02
148
原创 Redis在linux底下安装
安装redis首先我们需要去安装 gcc,因为redis的底层是c开发的需要安装gcc的编译环境,先下载,在编译。 查看是否安装 rpm -qa|grep gcc* 如果没有则安装 yum install gcc-c++
2021-06-01 21:12:35
134
原创 如何解决缓存雪崩、击穿、穿透难题?
一.缓存雪崩 缓存雪崩一般指的是有大量的key在同一时间失效,此时有大量的请求同时发送至数据库,导致数据库压力突然增大,数据库发生宕机。如下图所展示: 解决方案: 首先我们可以避免给大量数据设置同一过期时间。我们可以在用命令EXPIRE命令给每一条数据设置时间的时候,给这些数据多设置一个随机(1-3分钟)的随机时间,这样下来不同的数据有不同的过期时间,保证了数据在同一时间不会过期。 除了设置过期时间,还可以使用服务降级,来应对缓存雪崩。所谓的服务降级就是当发生缓存雪崩的时候采用不同处理
2020-10-26 16:29:08
542
1
原创 解决Redis缓存和数据库值不一致问题
为什么会发生数据库和缓存数据的不一致问题。 一致性是什么,一致性包含了以下两种: 缓存中有数据,那么数据库的数据必须要和缓存的数据要一致。 缓存中没有数据,在数据库值必须要是最新的数据。 不符合以上两种情况的数据就是发生了数据不一致问题,对于读写缓存来说,就会发生这样的问题,此时我们要需要相应的策略去做做同步还是异步: 同步写回策略:就是写入缓存时,必须要写入数据库,保证数据一致性。 异步写回策略:想写入缓存,等到缓存失效或者淘汰的时候,再写入数据库,此时如果还没有写入数据库,缓存就挂了,这样数据
2020-10-23 16:12:56
5519
3
原创 C语言数值的交换及其栈空间的解释
程序如下#include<stdio.h>void exchange(int a, int b){ int tmp; tmp = a; a = b; b = tmp;}void dealChange(int *a, int *b){ int tmp; tmp = *a; *a = *b; *b = tmp;}int main(){ int a = 2; int b = 3; excha...
2018-04-21 18:22:50
904
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅