缓存
_吹雪_
这个作者很懒,什么都没留下…
展开
-
Redis 和 IO 多路复用
最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所有的操作都是按照顺序线性执行的, 但是由于读写操作...原创 2018-07-30 23:11:16 · 1952 阅读 · 0 评论 -
memcached与redis的实现对比
0. 前言memcached和redis,作为近些年最常用的缓存服务器,相信大家对它们再熟悉不过了。前两年还在学校时,我曾经读过它们的主要源码,如今写篇笔记从个人角度简单对比一下它们的实现方式,权当做复习, 有理解错误之处,欢迎指正。1. 综述读一个软件的源码,首先要弄懂软件是用作干什么的,那memcached和redis是干啥的?众所周知,数据一般会放在数据库中,但是查询数据会相...转载 2018-07-30 23:07:58 · 212 阅读 · 0 评论 -
redis线程模型
0. 前言Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler):文件事件处理器使用 I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(writ...转载 2018-07-30 23:06:02 · 257 阅读 · 0 评论 -
Tair-淘宝自主开发的一个分布式key/value存储系统
0. 简介tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式. 非持久化的 tair 可以看成是一个分布式缓存. 持久化的 tair 将数据存放于磁盘中. 为了解决磁盘损坏导致数据丢失, tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的...原创 2018-07-20 08:43:20 · 784 阅读 · 0 评论 -
常用缓存系统使用经验总结
0. 前言缓存系统是提升系统性能和处理能力的利器,常用的缓存系统各自的特性和使用场景有所不同,这里总结下常用缓存系统时需要关注的点以及解决方案,以及业务中缓存系统的选型等。本文内容主要包括以下: * 缓存使用中需要注意的点:热点、惊群、击穿、并发、一致性、预热、限流、序列化、压缩、容灾、统计、监控。 * spring cache、分布式锁。1、常用缓存系统在平常的业务开发过...转载 2018-07-30 23:13:13 · 1126 阅读 · 0 评论 -
缓存穿透与缓存雪崩
1. 缓存穿透1.1 什么是缓存穿透?一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去后端系统查找(比如DB)。如果key对应的value是一定不存在的,并且对该key并发请求量很大, 就会对后端系统造成很大的压力。这就叫做缓存穿透。1.2 如何避免?对查询结果为空的情况也进行缓存,缓存时间设置短一点,或者该key对应的数据insert了之后...原创 2018-06-27 23:56:55 · 162 阅读 · 0 评论 -
缓存与数据库一致性
1.使用缓存的场景缓存是提高系统读性能的常用技术,尤其对于读多写少的应用场景,使用缓存可以极大的提高系统的性能.例子:查询用户的存款: select money from user where uid = YYY;为了优化该查询功能,我们可以在缓存中建立uid->money的键值对。减少数据库的查询压力。2.读操作流程目前数据库和缓存中都有存储数据,当读取数据的时候,流程如下。...转载 2018-10-15 17:20:35 · 414 阅读 · 0 评论