Redis
文章平均质量分 78
“何谓死亡?”
“枯藤,老树,昏鸦。”
“可否具体?”
“古道,西风,瘦马。”
“可否再具体?”
“万物皆永恒,你不在”
雪孤城
所念皆星河,所系皆山河
展开
-
SpringCache的简单应用
常用注解@Cacheable:将数据保存到缓存中@CacheEvict:将数据从缓存中删除@CachePut:不影响当前方法执行的情况下,更新缓存@Caching:组合以上的多个操作@CacheConfig:在类级别共享缓存的相同配置1.简单整合1. Maven坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifact原创 2021-01-21 20:24:44 · 145 阅读 · 0 评论 -
Redis性能优化
1.高并发电商架构2.缓存常见问题2.1 缓存穿透缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通常出于容错的考虑, 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到数据库去查询, 失去了缓存保护后端存储的意义。问题原因:自身业务代码或者数据出现问题一些恶意攻击、 爬虫等造成大量空命中解决方案:① : 缓存空对象例:// 从缓存中获取数据 String value = Redis.get(key);// 缓存为空 if (原创 2020-11-24 14:43:11 · 851 阅读 · 1 评论 -
Redis分布式锁
1.分布式锁简介:防止分布式系统中的不同节点之间的多个进程之间相互干扰而产生的的数据安全问题.分布式坏境下的数据安全问题:数据(例如库存为100) 存在 node1、node2、node3 三个 JVM 内存中.数据(例如库存为100)同时都会在 JVM 分配一块内存,多个请求发过来同时对这个变量操作,显然结果是不能预知的.多个请求分别操作三个不同 节点上的JVM 内存区域的数据,数据(例如库存为100) 之间不存在共享,也不具有可见性,处理的结果也是不能预知的.注意:synchroniz原创 2020-11-23 11:30:05 · 26390 阅读 · 0 评论 -
Redis数据结构底层原理及Redis 6 特性
1.Redis 基本特性非关系型的键值对数据库,可以根据键以O(1) 的时间复杂度取出或插入关联值数据是存在内存中的键的类型可以是字符串,整型,浮点型等,且键是唯一的值类型可以是string,hash,list,set,sorted set 等内置了复制,磁盘持久化,LUA脚本,事务,SSL, ACLs,客户端缓存,客户端代理等功能通过Redis哨兵和Redis Cluster 模式提供高可用性2. 应用场景计数器:可以对 String 进行自增自减运算,从而实现计数器功能。Redi原创 2020-11-22 21:11:48 · 429 阅读 · 0 评论 -
Redis集群原理
1.Redis集群方案1.1 哨兵模式在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异 常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现 一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率图例:1.2 Redis集群re原创 2020-11-20 16:06:52 · 29772 阅读 · 0 评论 -
Redis的持久化、主从、哨兵机制
1.持久化机制1.1 RDB快照(snapshot)简介:将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化。在默认情况下, Redis 将内存快照文件保存在名字为 dump.rdb 的二进制文件中。配置:自动触发在 redis.conf 配置文件中的 SNAPSHOTTING 配置配置解析:save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存save 6原创 2020-11-18 23:09:09 · 26343 阅读 · 0 评论 -
Redis高频面试点
1.Redis是单线程吗?不完全是单线程。一般说Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这里也是Redis 对外提供键值存储服务的主要流程。Redis的其他功能:持久化、异步删除、集群数据同步等,都是由额外的线程执行的。2.Redis 单线程为什么还能这么快?数据都是在内存中,操作也是在内存中操作,且单线程避免了线程间的切换而损耗的开销。3. Redis 单线程如何处理并发客户端连接?Redis的IO多路复用机制redis利用epoll来实现IO多路原创 2020-11-12 21:25:55 · 26313 阅读 · 0 评论 -
Redis数据结构
1.数据结构及应用场景1. StringSET key value :存入字符串键值对MSET key value [key value …] :批量存储字符串键值对SETNX key value :只在键 key 不存在的情况下,将键 key 的值设置为 value 。若键 key 已经存在, 则 SETNX 命令不做任何动作。GET key :获取一个字符串键值MGET key [key …] :批量获取字符串键值DEL key [key …] :删除一个键EXP原创 2020-11-11 23:57:10 · 26420 阅读 · 0 评论