![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
高速缓存
wanhf11
无。
展开
-
Memcache入门
add命令add [key] [flag] [expire秒] [bytes] value 过期时间默认0: 30天或者被LRU淘汰 例如:add web 0 10 5 maizi储存array或者object 1.转成json 2.利用flag标记字符串类型delete命令delete [key]delete webreplace命令和add一样set命令和add,replace一样 具有原创 2016-03-28 11:24:49 · 263 阅读 · 0 评论 -
Redis 单线程模型
redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。不过,因为一般的内存操作都是简单存取操作,线程占用时间相对较短,主要问题在io上,因此,redis这种模型是合适的,但是如果某一个线程出现问题导致线程占用很长时间,那么reids的单线程模型效率可想而知。总体来说快速的原因如下: 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要转载 2016-05-25 10:00:07 · 714 阅读 · 0 评论 -
Redis 数据持久化
redisObject首先Redis内部使用一个redisObject对象来表示所有的key和value,redisObject最主要的信息如上图所示:type代表一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际r转载 2016-05-21 08:38:35 · 305 阅读 · 0 评论 -
Redis发布订阅
发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布者和消息订阅者之间的耦合,这点和设计模式中的观察者模式比较相似。pub /sub不仅仅解决发布者和订阅者直接代码级别耦合也解决两者在物理部署上的耦合。redis作为一个pub/sub server,在订阅者和发布者之间起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向redis server订阅自己原创 2016-05-16 10:36:40 · 475 阅读 · 0 评论 -
Redis 入门
基本数据类型Strings - 字符串 Redis的字符串是字节序列。在Redis中字符串是二进制安全的,这意味着他们有一个已知的长度,是没有任何特殊字符终止决定的,所以可以存储任何东西,最大长度可达512兆。基本命令//字符串 set key value get key //对象 hmset key value1… hgetall key//数组 lpush key value lr原创 2016-05-13 21:26:13 · 294 阅读 · 0 评论 -
Redis 管道技术
redis是一个cs模式的tcp server,使用和http类似的请求响应协议。一个client可以通过一个socket连接发起多个请求命令。每个请求命令发出后client通常会阻塞并等待redis服务处理,redis处理完后请求命令后会将结果通过响应报文返回给client。基本的通信过程如下:Client: INCR X Server: 1 Client: INCR X Server: 2 Cl原创 2016-05-25 09:44:01 · 310 阅读 · 0 评论 -
Redis 知识
Redis与Memcached的区别 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 在Redis中,并不是所有的数据都一直存储在内存中的。这是和Memcached相比一个最大转载 2016-04-25 10:33:34 · 269 阅读 · 0 评论 -
Redis 订阅发布 原理
参考内容RedisServer包含两个重要的结构: 1. channels:实际上就是一个key-value的Map结构,key为订阅地频道,value为Client的List 2. patterns:存放模式+client地址的列表流程:从pubsub_channels中找出跟publish中channel相符的clients-list,然后再去pubsub_patterns中找出每一个相原创 2016-08-11 20:44:01 · 1056 阅读 · 0 评论 -
Memcache 面试题
memcached是怎么工作的?Memcached的神奇来自两阶段哈希(two-stage hash)。Memcached就像一个巨大的、存储了很多memcached最大的优势是什么?请仔细阅读上面的问题(即memcached是如何工作的)。Memcached最大的好处就是它带来了极佳的水平可扩展性,特别是在一个巨大的系统中。由于客户端自己做了一次哈希,那么我们很容易增加大量memcached到集群转载 2016-09-21 16:04:19 · 2886 阅读 · 0 评论 -
Redis 持久化
如果你打开虚拟内存功能,当内存用尽时, Redis就会把那些不经常使用的数据存储到磁盘。 如果Redis里的虚拟内存被禁了,他就会用上操作系统的虚拟内存(交换内存),同时性能急剧下降。 你可以配置maxmemory参数,来避免Redis默认再分配更多的内存。在较新版本的Redis配置文件中使用了特别的设置选项,当我需要回收内存的时候。 有5种选项规则:volatile-lru:在使用了过期设置转载 2016-05-30 13:32:01 · 244 阅读 · 0 评论 -
MemcacheClient 封装
package org.digdata.swustoj.base;import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit;public interface IMemCacheTemplate { public static final String JSON_KEY = "json";原创 2016-06-01 14:56:04 · 532 阅读 · 0 评论 -
Memcache+Spring AOP
<aop:aspectj-autoproxy proxy-target-class='false'/>proxy-target-class属性值决定是基于接口的还是基于类的代理被创建。 如果proxy-target-class 属性值被设置为true,那么基于类的代理将起作用(这时需要cglib库)。 如果proxy-target-class属值被设置为false或者这个属性被省略,那么标准的J原创 2016-06-02 14:56:57 · 470 阅读 · 0 评论 -
Memcache内存管理
内存碎片化在不断malloc和free操作,会形成很小的内存的片段,我们无法继续利用。Memcache管理内存方法slab allocator机制 将内存划分为数个slab class仓库 各个仓库切分成不同尺寸的小块(chunk) 需要存放内容的时候,需要先判断内容的大小,为期选择合理的仓库存放memcache保存着slab class在空闲时chunk列表,存放时根据列表进行分配 (最优原创 2016-03-28 11:58:22 · 326 阅读 · 0 评论 -
Memcache 雪崩现象
定义:缓存雪崩现象是由于某个缓存节点失效(或者缓存失效),导致其他节点的缓存命中率下降,缓存中缺失数据去数据库查询,短时间内造成数据库服务器崩溃,重启后短时间内又崩溃,但是此时缓存多了一些,经过一段周期,数据库逐渐稳定。解决方法:分析用户行为,尽量让失效时间点均匀分布。 控制数据库连接数,并发效率降低 二级缓存,A1为原始缓存,A2为拷贝缓存,当A1失效,可以访问A2原创 2016-03-28 13:42:14 · 631 阅读 · 0 评论 -
memcache永久有效数据丢失
原因 惰性删除 LRU淘汰 解决方法永久数据和非永久数据分开放,减少永久数据被踢的现象原创 2016-03-28 14:10:04 · 720 阅读 · 0 评论 -
Multiget hole现象
Multiget 定义:memcache(分布式缓存)一次性获取多个键值,一般由memcached client自行实现。Multiget hole现象:加入多个memcache节点后,原本只需要查询一次缓存,现在变成需要进行多次查询缓存,虽然系统负载降低,但是效率并没有提高。例如: 原本有100个key-value,1个memcache节点,现在增加一个memcache节点,每个机器上各有50个原创 2016-03-28 14:06:11 · 533 阅读 · 0 评论 -
一致性Hash
一致性Hash算法传统hash算法的缺陷 如果有一个机器加入或退出这个集群,则所有的数据映射都无效了,如果是持久化存储则要做数据迁移,如果是分布式缓存,则其他缓存就失效了(重新hash分布)。一致性hash算法作用 在设计分布式cache系统的时候,我们需要让key的分布均衡,并且在增加cache server后,cache的迁移做到最少。 选择具体的机器节点不在只依赖需要缓存数据的key的h原创 2016-03-28 14:31:36 · 357 阅读 · 0 评论 -
Nginx+tomcat+session共享
Memcached_Session_ManagerMSM–memcached session manager是一个高可用的Tomcat session共享解决方案,除了可以从本机内存快速读取Session信息(仅针对黏性Session)外,同时可使用memcached存取Session,以实现高可用。 对于非黏性Session,memcached直接存储session。特性: 1. 支持Tom原创 2016-04-27 12:40:01 · 410 阅读 · 0 评论 -
memcache 内存管理
内存分配 Page为内存分配的最小单位 Memcached 的内存分配以page为单位,默认情况下一个page是1M Slabs划分数据空间 Memcached 并不是将所有大小的数据都放在一起的,而是预先将数据空间划分为一系列slabs,每个slab只负责一定范围内的数据存储。 每个slab负责的空间其实是不等的,memcached默认情况下下一个slab的最大值为前一个的1.25倍。 例原创 2016-05-09 10:51:34 · 772 阅读 · 0 评论 -
MemcacheClient设置过期时间
@Override public IMemCacheTemplate set(String key, Object obj, TimeUnit timeUnit, Integer time) { Map<String, Object> map = object2Json(key, obj); Date expDate = null;原创 2016-06-01 14:14:44 · 2992 阅读 · 0 评论 -
Redis和Memcache对比
参考链接转载 2016-06-02 15:17:35 · 226 阅读 · 0 评论