Normaling

where there is a will,there is a way

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

点击任意处进入哦~
输入关键词开始搜索
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
Redis的GEO实现查看附件商户

Redis的GEO实现查看附件商户

一,GEO数据结构 GEO就是Geolocation的简写,代表地理坐标。Redis在3.2版本加入了对GEO的支持,允许存储地理坐标信息,帮助我们根据经纬度来搜索数据 1.1 GeoAdd GeoAdd:添加一个地理空间信息,包含:经度(longitude),纬度(latitude),值(memb

Middleware Redis
3月 normaling
Redis实现共同关注和关注推送

Redis实现共同关注和关注推送

一,关注和取关 基于该表结构,实现两个接口: 关注和取关接口 判断是否关注的接口 关注是User之间的关系,是博主与粉丝的关系,数据库中有一张tb_floow表来标识 字段 说明 id 编号 user_id 用户id follow_user_id 关联的用户id create_time 创建时间 关

Middleware Redis
3月 normaling