Redis总结
Redis总结
pl在之心
立足当下
展开
-
redis集群是如何组建的
1. 问题redis集群是如何组建的,新的节点如何加入集群2. 了解命令meet1) 首先节点各自独立启动,会选择以集群的方式启动2)该节点通过meet邀请其他节点加入集群3. 实现通过向节点A发送cluster meet命令,客户端可以让接受命令的节点A将另一个节点B添加到集群中cluster meet <ip> <port>...原创 2020-01-10 14:58:50 · 171 阅读 · 0 评论 -
redis 集群数据结构
1. 问题1) redis 集群的数据结构是怎样的?2. 节点状态clusterNode结构clusterNode表示一个节点的当前状态redis集群使用clusterNode结构来保存集群中某个节点的状态,包括1) 节点的名字 (40位16进制字符串)2) 节点的创建时间3) 节点对应集群当前的纪元4) 节点的IP和端口5) 节点的状态 (下线...原创 2020-01-10 14:33:16 · 297 阅读 · 0 评论 -
redis 集群容错策略
1. 问题1) redis 集群如果一个主节点挂了,会怎么处理2) redis集群如果一个从节点挂了,会怎么处理3) 如何判断整个redis集群挂了?2. 处理2.1redis 集群如果一个主节点挂了,会怎么处理在了解这个问题之前,我们需要知道redis集群如何判断一个主节点挂了?1) 集群中的每个节点都会顶起地向集群中的其他节点发送PING消息2) ...原创 2020-01-10 10:58:25 · 1314 阅读 · 0 评论 -
Redis 为什么会出现阻塞?
1. 介绍Redis是基于reactor模式的一种事件驱动框架。2. 事件分类文件事件: 读事件,写事件时间事件: 定时事件,周期性事件3. 文件事件连接事件:客户端连接到服务端,连接关闭等读写事件:socket读写4.事件处理器不同的事件对应不同的事件处理器,由事件分发器分派说明:IO多路复用一般借助操作系统自带的...原创 2020-01-07 18:19:49 · 2265 阅读 · 0 评论 -
Redis AOF持久化
1. 问题1) RDB为redis的一个全量的内存快照,但是每次都需要全量,耗时很长,如何实现增量的持久化?2)类似于Mysql的bin log日志,Row格式存储的是数据,Statement存储的是执行的命令语句,redis有没有?2. AOF流程1) 服务器每次执行完一个写命令,会以协议格式将执行的写命令追加到aof_buf缓冲区的末尾;2) 根据一定的策略,...原创 2020-01-02 14:53:58 · 100 阅读 · 0 评论 -
Redis RDB持久化
1. 问题1). redis作为一个以内存为基本的存储服务,如何保证可靠性呢?如果遇到断电,怎么处理2) redis有没有一种数据快照功能?3)redis主从同步,传输的是什么文件?2. 内存快照RDB可以说是一个内存快照,格式为二进制,内容为key,value信息文件结构:REDIS为固定开头,占5个字节。db_version为RDB文件的版本...原创 2020-01-02 14:22:10 · 142 阅读 · 0 评论 -
redis单线程为什么这么快
所谓redis很快,到底是指的什么?响应时长很短那么响应时长由什么组成呢?响应时长=网络耗时+redis自身耗时网络耗时正常和运营商相关,一般为近似固定的延时redis自身耗时=接受请求+分发请求+处理请求总结redis单线程比较快的原因:1) 使用IO多路复用,例如epoll (提升吞吐量)2) 纯内存操作 (处理请求耗时短,单位时间内处理的请求数...原创 2019-12-31 10:46:58 · 121 阅读 · 0 评论 -
redis info详解2
统计# Statstotal_connections_received:3940602610 #总共接受到的连接数total_commands_processed:8487340070#总共处理的连接数instantaneous_ops_per_sec:160 #每秒处理的请求total_net_input_bytes:215986712412 #总网络流入字节...原创 2019-12-31 09:00:29 · 215 阅读 · 1 评论 -
redis info详解
1. 背景最近在研究redis的配置信息,想了解为什么这么配置以及如何优化这些配置2. 配置信息10.38.162.118:7004> info# Server 服务器信息redis_version:3.2.9 #redis版本redis_git_sha1:00000000 #git上版本redis_git_dirty:0 #git代码是否修改...原创 2019-12-30 20:20:45 · 172 阅读 · 0 评论 -
redis底层数据结构之压缩列表
1. 问题压缩列表在Redis中用来存储哪些类型的数据?2. 介绍压缩列表是redis为了节省内存而开发的,由一系列特殊编码的连续内存块组成的有序数据结构。用途: zset键,哈希键3. 底层实现说明:ziplist_bytes: 四个字节,记录占用总字节数ziplist_tail_offset: 四个字节,代表第一个节点距离最后一个节点的字节数...原创 2019-12-30 15:51:11 · 179 阅读 · 0 评论 -
redis底层数据结构之整数集合
1. 问题当我们使用redis的set结构存储一些数量不多的数字时,底层是什么数据结构?2. 数据结构typedef struct intset{ //编码方式 uint32_t enconding; // 集合包含的元素数量 uint32_t length; //保存元素的数组 int8_t contents[];}...原创 2019-12-30 15:04:39 · 178 阅读 · 0 评论 -
redis 慢查询日志
1. 问题 我们在数据库sql经常会统计并优化慢查询语句,同样的,redis中也存在一种慢查询;作用也是一样,列出操作很慢的命令,这里的很慢是指超过某个指定的时间,用户可以自定义。2. 使用通过slowlog get来获取redis的慢查询日志slowlog get 1指定查询一条慢查询日志3. 日志分析慢查询日志分为id, 时...原创 2019-12-30 14:19:44 · 183 阅读 · 0 评论 -
Redis集群如何使用pipeline操作
1. 背景 当我们的产品需要一款分布式缓存组件时,一般会考虑Redis集群. Redis集群是一种分布式的,高可用性的缓存组件,大多数情况下存储一些经常使用的,变动不频繁的数据,例如用户信息, 离线计算的某类数据等. 但是,随着用户量的大量增加,如何快速的将海量的数据导入Redis集群变得越加紧急, 传统的逐条插入Redis集群的方式已经无法满足我们的需求,因为...原创 2019-08-12 16:52:59 · 2133 阅读 · 0 评论 -
Redis 查看中文乱码
目录1. 背景2. 问题思考3.问题解决 1. 背景 最近使用redis存储一些包含中文的信息时,发现直接get查看后,中文显示的是一串编码. 上网查询后,发现下面的命令能解决这个问题,正确显示中文.> redis-cli -h xx -p xx -c --raw2. 问题思考 ...原创 2019-08-12 14:18:30 · 3594 阅读 · 0 评论 -
Redis基本命令
Redis基本命令与Redis的内部结构有关1.连接Redis或Redis集群连接Redis> redis-cli -h xx -p xx连接Redis集群> redis-cli -h xx -p xx -c中文乱码> redis-cli -h xx -p xx -c --raw2.普通键值对根据键值查询value> ge...原创 2018-08-22 17:04:30 · 155 阅读 · 0 评论 -
Redis从入门到精通之原理与问题总结
目录1.使用场景2.底层数据结构3.发布与订阅功能4.批量操作pipeline5.延迟队列6.lua脚本与原子性操作7.地理位置8.基数统计9.集群节点分布原理10.JedisCluster原理11.Redis集群连接池12.对象编码方式13.序列化DUMP14.Redis与Memcache的区别15.简单的事务支持16.大量K...原创 2018-08-23 09:55:09 · 252 阅读 · 0 评论 -
Redis内部结构
redis总结https://blog.youkuaiyun.com/u010627840/category_9278277.html目录1. 简单动态字符串 2. 链表3.字典4. 跳跃表skiplist5.整数集合intset 6.压缩列表ziplist7.Redis内存分配原则8.Redis命令中type key与objec...原创 2018-08-28 11:02:40 · 2226 阅读 · 0 评论