Normaling

where there is a will,there is a way

一个热爱技术、喜欢折腾的开发者。 专注于后端开发,偶尔写写前端。 记录生活,分享技术,探索未知。

点击任意处进入哦~
输入关键词开始搜索
Redis内存回收

Redis内存回收

一,Redis内存回收 Redis之所以性能强,最主要的原因就是基于内存存储。然而单节点的Redis其内存大小不宜过大,会影响持久化或主从同步性能。 我们可以通过修改配置文件来设置Redis的最大内存: # 格式 # maxmemory <bytes> # 例如 maxmemory 1gb 当内存

Middleware Redis
3月 normaling
Redis通信协议

Redis通信协议

一,RESP协议 1.1 介绍 Redis是一个CS架构的软件,通信一般分两步(不包括pipeline和Pubsub) 客户端(client)向服务端(server)发送一条命令 服务端解析并执行命令,返回响应结果给客户端 因此客户端发送命令的格式、服务端响应结果的格式必须有一个规范,这个规范就是通

Middleware Redis
3月 normaling
Redis网络模型

Redis网络模型

一,用户空间和内核空间 二,阻塞IO(Blocking IO) 三,非阻塞IO(NonBlocking IO)

Middleware Redis
3月 normaling
Redis数据结构

Redis数据结构

一,动态字符串SDS 我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。 可见字符串是Redis中最常用的一种数据结构,不过Redis没有直接使用C语言中的字符串,因为c语言字符串存在很多问题: 获取字符串的长度需要通过运算 非二进制安全 不可修改 Redis构建了

Middleware Redis
3月 normaling
集群优化

集群优化

一,引言 集群虽然具备高可用特性,能实现自动故障恢复,但是如果使用不当,也会存在一些问题: 集群完整性问题 集群带宽问题 数据倾斜问题 当数据出现BigKey,进行数据处理使用了Hash_tag都会出现数据倾斜问题,导致部分节点负担少,部分节点负担中。 客户端性能问题 客户端在访问集群时,需要做节点

Middleware Redis
3月 normaling
服务端优化

服务端优化

一,持久化配置 Redis的持久化虽然可以保证数据安全,但是也会带来额外数据开销,因此持久化请遵守下列建议 用来做缓存的Redis实例尽量不要开启持久化功能 建议关闭RDB持久化功能,使用AOF持久化 利用脚本定期在slave节点做RDB,实现数据备份 设置合理的rewrite阈值,避免频繁的bgr

Middleware Redis
3月 normaling
批处理优化

批处理优化

一,Pipline 1.1 为什么要优化批处理 单个命令的执行流程: N条命令依次执行流程: N条命令批量执行:

Middleware Redis
3月 normaling
Redis键值设计与BigKey问题

Redis键值设计与BigKey问题

一,设计Key结构 Redis的key虽然可以自定义,但是最好遵循以下几个最佳实践约定: 遵循基本格式:[业务名]:[数据名]:[id] value长度不超过44字节 不包含特殊字符 例如:登录业务,保存用户信息,key为:login:user:10 优点: 可读性强 避免key冲突 方便管理 更节

Middleware Redis
3月 normaling
Redis通过HyperLogLog实现UV统计

Redis通过HyperLogLog实现UV统计

一,HpyerLogLog Redis 的 HyperLogLog(HLL) 是一种概率型数据结构,用于高效地 统计大规模数据的唯一元素数量(基数估算)。它的核心特点是 占用固定极小内存(12KB),却能统计上亿级不重复元素,误差率仅约 0.81%。 HyperLogLog 的核心特性 特性 说明

Middleware Redis
3月 normaling
Redis通过BitMap实现用户签到

Redis通过BitMap实现用户签到

一,BitMap用法 1.1 引言 假如我们用一张表来存储用户签到信息,其结构应该如下 字段 说明 id 主键 user_id 用户id year 签到的年 month 签到的月 date 签到的日期 is_backup 是否补签 假如有1千万用户,平均每人每年签到10次,则这张表一年数据量为1亿条

Middleware Redis
3月 normaling