![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
缓存
amigo1226
这个作者很懒,什么都没留下…
展开
-
面试前必须要知道的Redis面试题
记录一下Redis几道常见的面试题如何解决缓存雪崩? 如何解决缓存穿透? 如何保证缓存与数据库双写时一致的问题?缓存雪崩Redis不可能把所有的数据都缓存起来(内存昂贵且有限),所以Redis需要对数据设置过期时间,并采用的是惰性删除+定期删除两种策略对过期键删除。如果缓存数据设置的过期时间是相同的,并且Redis恰好将这部分数据全部删光了。这就会导致在这段时间内,这些缓...原创 2019-11-12 09:28:40 · 342 阅读 · 0 评论 -
Redis笔记 - 07
哨兵(Sentinel)机制如果主服务器挂了,由于我们的写请求由主服务器处理,只有一台主服务器,那就无法处理写请求了嘛?Redis提供了哨兵(Sentinel)机制供我们解决上面的情况。如果主服务器挂了,我们可以将从服务器升级为主服务器,等到旧的主服务器(挂掉的那个)重连上来,会将它(挂掉的主服务器)变成从服务器。这个过程叫做主备切换(故障转移)在正常的情况下,主从加哨兵(Sent...原创 2019-11-04 09:28:35 · 168 阅读 · 0 评论 -
Redis笔记 - 06
主从架构Redis也跟关系型数据(MySQL)一样,如果有过多请求还是撑不住的。如果只有一台Redis服务器的话,那随着请求越来越多:Redis的内存是有限的,可能放不下那么多的数据 单台Redis支持的并发量也是有限的。 万一这台Redis挂了,所有的请求全走关系数据库了,那就更炸了。显然,出现的上述问题是因为一台Redis服务器不够,所以多搞几台Redis服务器就可以了,为了...原创 2019-11-01 17:34:32 · 114 阅读 · 0 评论 -
Redis笔记 - 05
Redis数据结构的对象为什么使用Redis,而不用map做缓存Java实现的Map是本地缓存,如果有多台实例(机器)的话,每个实例都需要各自保存一份缓存,缓存不具有一致性 Redis实现的是分布式缓存,如果有多台实例(机器)的话,每个实例都共享一份缓存,缓存具有一致性。 Java实现的Map不是专业做缓存的,JVM内存太大容易挂掉的。一般用做于容器来存储临时数据,缓存的数据...原创 2019-10-30 17:04:58 · 154 阅读 · 0 评论 -
Redis笔记 - 04
Redis事件Redis服务器是一个事件驱动程序,主要处理以下两类事件:文件事件:文件事件其实就是对Socket操作的抽象,Redis服务器与Redis客户端的通信会产生文件事件,服务器通过监听并处理这些事件来完成一系列的网络操作 时间事件:时间事件其实就是对定时操作的抽象,前面我们已经讲了RDB、AOF、定时删除键这些操作都可以由服务端去定时或者周期去完成,底层就是通过触发时间事件...原创 2019-11-01 15:37:53 · 137 阅读 · 0 评论 -
Redis面试题汇总
1、Redis分布锁是怎么实现的? 先拿setnx来争抢锁,抢到之后再用expire给锁加一个过期时间防止锁忘记释放。如果在setnx之后执行expire之前的进程意外crash或重启维护了,那会咋样?Set指令 有非常复杂的参数,可以同时把setnx和expire合成一条指令来用的。2、使用过Redis做异步队列么,你是怎么用的?有什么缺点? 一般使用list结...原创 2019-11-12 09:30:04 · 218 阅读 · 0 评论 -
Redis笔记 - 03
Redis服务器中的数据库Redis服务器中也有数据库这么一个概念。如果不指定具体的数量,默认会有16个数据库。数据库与数据库之间的数据是隔离的。在数据库中所有键值对的存储结构为哈希表,如下所示:Redis的数据库就是使用字典(哈希表)来作为底层实现的,对数据库的增删改查都是构建在字典(哈希表)的操作之上的。过期策略:定时删除(对内存友好,对CPU不友好),到时间点上...原创 2019-10-31 17:25:31 · 152 阅读 · 0 评论 -
ehcache、memcache、redis三大缓存比较
Ehcache优点:速度快 使用简单,开发者提供的接口非常简单明了,从Ehcache的搭建到运用运行仅仅需要几分钟。 轻量级,核心程序仅仅依赖slf4j这一个包。 扩展性好,Ehcache提供了对大数据的内存和硬盘的存储,最近版本允许多实例、保存对象高灵活性、提供LRU、LFU、FIFO淘汰算法,基础属性支持热配置、支持的插件多。 监听器,缓存管理器监听器 (CacheMa...原创 2019-10-21 16:17:20 · 248 阅读 · 0 评论 -
CentOS7安装Redis
1、下载Redisstable是稳定版本,默认下载的是linux版本下载:https://redis.io/download2、上传解压并移动目录上传到 /mnt/ 目录下进入mnt目录:cd /mnt/ 解压redis:tar xzf redis-5.0.5.tar.gz把redis-5.0.5移动到/usr/local/ 目录下:mv redis...原创 2019-07-09 16:46:23 · 122 阅读 · 0 评论 -
Redis笔记 - 02
Redis的特性 Strings:Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令: set,get,decr,incr,mget 等。 常用方法: 获取字符串长度 往字符串append内容 设置和获取字符串的某一段内容 设置及获取字符串的某一位(bit) 批量设置一系列字符串的内容 Hash...原创 2019-06-14 15:27:09 · 445 阅读 · 0 评论 -
Redis笔记 - 01
之前用SpringBoot+MyBatisPlus+SpringMVC整合搭建了一个基础web开发框架,使用这三个框架搭建出来项目结构非常的清爽,没有过多的配置文件,各个模块之间有清晰的联系,非常适合敏捷开发。最近学习了Redis这个基于内存的,Key-Value数据形式的高性能数据库,感觉学习了入门之后很简单,没有体会到它具体能干嘛,我就想着使用Redis这个数据库来整合之前搭建的框架,利...原创 2019-06-13 16:03:18 · 246 阅读 · 0 评论 -
Redis学习笔记(基础知识)
Redis是一个开源的底层使用C语言编写的Key-Value存储数据库。可用于缓存、事件发布订阅、高速队列等场景。而且支持丰富的数据类型:string(字符串)、Hash(哈希)、List(列表)、Set(无序集合)、Zset(sorted set:有序集合)Redis在项目中的应用场景:1、缓存数据最常用,对经常需要查询且变动不是很频繁的数据 常称作热点数据。2、消息队列...转载 2019-06-13 16:02:55 · 178 阅读 · 0 评论