
Redis模块
本兮言
“任何事情,没有坚持3个月,就没有发言权!没有坚持3年,就不能说自己懂!没有坚持7年,就不可能是专家!没有坚持10年以上,就不会拥有权威!没有坚持一辈子,就不可能有所成就!选择自己真正想做的事情,每天重复做,能坚持下来的人,定会成为某一领域的领航者。成功没有捷径,坚持才能成功!”
展开
-
读书笔记:redis开发与运维 基础篇
redis特性1>速度快:redis所有数据都是存放在内存中,是redis速度快的主要原因,是有c编写,一般来说用c编写的程序距离操作系统近,执行速度更快,非阻塞I/O,使用epoll作为I/O多路复用的技术实现,不再网路I/O上浪费过多时间,使用单线程架构,预防了多线程可能产生竞争的问题,对于服务端开发来说,锁和线程切换通常是性能杀手(但是单线程有一个问题就是每个命令执行时间有要...原创 2019-03-18 19:29:38 · 2486 阅读 · 1 评论 -
缓存设计 总结
缓存的收益和成本: 1>加速读写:因为缓存通常都是全内存的例如Redis、Memcache,而存储层通常读写性能不够强悍(例如MySQL),通过缓存的使用可以有效加速读写 2>降低后端访问量和复杂计算 成本: 数据不一致:缓存层和储存层存在一定时间窗口的不一致性,时间窗口跟更新策略有关 加入缓存后需要同时处理缓存层和逻辑层逻辑,增加了开发者维护代码...原创 2019-04-01 18:47:33 · 384 阅读 · 0 评论 -
读书笔记:redis开发与运维 集群篇
集群: Redis Cluster是Redis分布式解决方案 主要解决了单机内存、并发(OPS)、流量等瓶颈,采用Cluster架构方案达到负载均衡的目的,比如虽然redis官网说10万/s条命令,但是有些业务需要100万/每秒,机器内存16-256G但是业务需要500G, 数据分布: 分布式数据首先要解决把整个数据集按照分区规则映射到多个节点的问题常见的分区规...原创 2019-04-02 15:56:42 · 650 阅读 · 0 评论 -
redis 双写一致性
首先,缓存由于其高并发和高性能的特性,已经在项目中被广泛使用。在读取缓存方面,大家没啥疑问,都是按照下图的流程来进行业务操作。但是在更新缓存方面,对于更新完数据库,是更新缓存呢,还是删除缓存。又或者是先删除缓存,再更新数据库,其实大家存在很大的争议。目前没有一篇全面的博客,对这几种方案进行解析。于是博主战战兢兢,顶着被大家喷的风险,写了这篇文章。文章结构本文由以下三个部分...原创 2019-05-20 16:41:16 · 2534 阅读 · 0 评论 -
Redis底层数据类型
Redis主要数据结构:简单动态字符串(SDS)、双端链表、字典、跳跃表、整数集合、压缩列表和快速列表;一、简单动态字符串(SDS):Redis没有直接使用C语言中的传统的字节数组保存字符串,而是自行构建了简单动态字符串(SDS),C字符串只是作为简单动态字符串(SDS)的字面量,用于在无需对字符串值进行修改的地方。结构:struct __attribute__ ((__pack...原创 2019-05-22 11:02:15 · 291 阅读 · 0 评论 -
redis的一些问题分析
1、redis的原子性原子性:原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。 Redis的操作之所以是原子性的,是因为Redis是单线程的。由于对操作系统相关的知识不是很熟...原创 2019-06-02 19:45:41 · 267 阅读 · 0 评论 -
Redis网络架构及单线程模型
问题:1.Redis网络层基础组件主要包括哪几部分?2.什么是Redis的单线程模型?3.Redis怎样接收网络连接?Redis网络基础架构网络编程离不开Socket,网络I/O模型最常用的无非是同步阻塞、同步非阻塞、异步阻塞、异步非阻塞,高性能网络服务器最常见的线程模型也就是基于EventLoop模式的单线程模型。我们看看Redis的网络架构是怎么样的:R...原创 2019-08-18 20:23:47 · 2590 阅读 · 0 评论