redis
文章平均质量分 87
uuboke
这个作者很懒,什么都没留下…
展开
-
redis 类型的使用场景总结
一、string 分布式锁 特高并发会出现 解决方法:在解锁的时候判断一下 redis集群环境下,使用RedLock之Redisson实现分布式锁 1、redis和zookeeper的比较 redis 注重AP redis一步复制造成的锁丢失;比如:主节点没来的及把刚刚set进来这条数据给从节点,就挂了 zookeeper:CP(一致性要求太高,会损失一些性能) ...原创 2020-11-08 23:13:05 · 255 阅读 · 0 评论 -
redis的应用总结
1、SpringBoot+Redis布隆过滤器防恶意流量击穿缓存的正确姿势可以查看:https://blog.csdn.net/lifetragedy/article/details/103945885或者:http://note.youdao.com/s/FiFjryBx原创 2020-10-15 16:55:46 · 102 阅读 · 0 评论 -
springboot在整合的时候遇见的一些坑
1、Multiple Spring Data modules found, entering strict repository configuration mode!错误:2019-05-28 15:28:32.439 INFO main [org.springframework.data.repository.config.RepositoryConfigurationDelega...原创 2019-12-02 15:21:32 · 2147 阅读 · 0 评论 -
redis缓存穿透、缓存雪崩原因等一些问题
一、缓存穿透缓存穿透:key对应的数据在数据源并不存在,每次针对此key的请求从缓存获取不到,请求都会到数据源,从而可能压垮数据源。比如用一个不存在的用户id获取用户信息,不论缓存还是数据库都没有,若黑客利用此漏洞进行攻击可能压垮数据库。缓存击穿:key对应的数据存在,但在redis中过期,此时若有大量并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并...原创 2019-11-19 17:01:13 · 140 阅读 · 0 评论 -
阅读《Redis深度历险:核心原理和应用实践》的总结-06
一、Redis 安全通信想象这样一个应用场景,公司有两个机房。因为一个紧急需求,需要跨机房读取 Redis 数据。应用部署在 A 机房,存储部署在 B 机房。如果使用普通 tcp 直接访问,因为跨机 房所以传输数据会暴露在公网,这非常不安全,客户端服务器交互的数据存在被窃听的风险。Redis 本身并不支持 SSL 安全链接,不过有了 SSL 代理软件,我们可以让通信数据透 明地得到加密...原创 2019-11-12 16:34:12 · 216 阅读 · 0 评论 -
阅读《Redis深度历险:核心原理和应用实践》的总结-redis数据结构-05
一、压缩列表Redis 为了节约内存空间使用,zset 和 hash 容器对象在元素个数较少的时候,采用压缩列表 (ziplist) 进行存储。压缩列表是一块连续的内存空间,元素之间紧挨着存储,没有任何冗余空隙。127.0.0.1:6379> zadd programming 01 go 02 python 03 java (integer) 3127.0.0.1:6379&g...原创 2019-11-12 15:22:24 · 1156 阅读 · 0 评论 -
阅读《Redis深度历险:核心原理和应用实践》的总结-原理-04
一、info命令在使用 Redis 时,时常会遇到很多问题需要诊断,在诊断之前需要了解 Redis 的运行状 态,通过强大的 Info 指令,你可以清晰地知道 Redis 内部一系列运行参数。Info 指令显示的信息非常繁多,分为 9 大块,每个块都有非常多的参数,这 9 个块分 别是:1、Server 服务器运行的环境参数 2、Clients 客户端相关信息 3、Memory 服...原创 2019-10-21 21:54:52 · 300 阅读 · 0 评论 -
Redisson分布式锁的一些点
1、如何解决死锁问题?Redisson是如何解决死锁问题的?普通利用Redis实现分布式锁的时候,我们可能会为某个锁指定某个key,当线程获取锁并执行完业务逻辑代码的时候,将该锁对应的key删除掉来释放锁。lock->set(key),成功->执行业务,业务执行完毕->unlock->del(key)。根据这种操作和实践方式,我们可以分为下面两个场景:1...原创 2019-10-20 11:21:35 · 370 阅读 · 0 评论 -
阅读《Redis深度历险:核心原理和应用实践》的总结-原理-03
一、线程 IO 模型Redis 是个单线程程序!也许你会怀疑高并发的 Redis 中间件怎么可能是单线程。很抱歉,它就是单线程,你的 怀疑暴露了你基础知识的不足。莫要瞧不起单线程,除了 Redis 之外,Node.js 也是单线 程,Nginx 也是单线程,但是它们都是服务器高性能的典范。1、Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别...原创 2019-10-17 11:04:12 · 112 阅读 · 0 评论 -
阅读《Redis深度历险:核心原理和应用实践》的总结-02
续接上一篇:https://blog.csdn.net/wojiao228925661/article/details/1024705295、布隆过滤器 讲个使用场景,比如我们在使用新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的? 你会想到服务器记录了用户看过的所有历史记录,当推荐系统...原创 2019-10-10 18:14:35 · 404 阅读 · 0 评论 -
阅读《Redis深度历险:核心原理和应用实践》的总结-01
一、基础1、redis的数据结构:String(字符串)、list(列表)、set(集合)、hash(哈希)和zset(有序集合)1.1、String字符串字符串 string 是 Redis 最简单的数据结构。Redis 所有的数据结构都是以唯一的 key 字符串作为名称,然后通过这个唯一 key 值来获取相应的 value 数据。不同类型的数据结 构的差异就在于 value 的...原创 2019-10-10 12:37:00 · 274 阅读 · 0 评论 -
redis一些问题
Redis有哪些数据结构?字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog、Geo、Pub/Sub。如果你说还玩过Redis Module,像BloomFilter,RedisSearch,Redis-ML,面试官得眼睛就开始发亮了。使用过Redis分布式锁么,它是...原创 2019-10-09 20:58:49 · 112 阅读 · 0 评论 -
redis并发读写锁,使用Redisson实现分布式锁
分布式锁使用场景场景1某集群服务提供一组任务,A请求随机从集群中的机器1任务组中获取一个任务;B请求随机从集群中的机器2任务组中获取一个任务。 在理想的情况下,A从任务组中挑选一个任务,任务组删除该任务,B从剩下的的任务中再挑一个,任务组删除该任务。 同样的,在真实情况下,如果不做任何处理,可能会出现A和B挑中了同一个任务的情况。场景2以流量业务场景中例子来说明,手机用户可以在...原创 2019-06-29 11:42:39 · 2579 阅读 · 2 评论 -
redis实现session共享
一、spring+redis+session1、添加依赖<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> <version>1.2.1...原创 2018-09-17 13:30:11 · 991 阅读 · 0 评论 -
redis的事务
redis的事务:可以一次执行多个命令,本质是一组命令的集合。一个事务中的。所有命令都会序列化,按顺序地串行化执行执行而不会被其它命令插入,不许加塞( Redis事务的主要作用就是串联多个命令防止别的命令插队),(MULTI,EXEC,DISCARD和WATCH是Redis事务的基础)。我们可以参考官方的文档:https://redis.io/topics/transactions下面...原创 2018-07-17 14:27:11 · 128 阅读 · 0 评论 -
Redis的持久化
Redis持久化的机制是什么呀?到底是什么也可以参考官网对持久化的解释:https://redis.io/topics/persistenceRedis 提供了多种不同级别的持久化方式:RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令...原创 2018-07-17 12:32:41 · 91 阅读 · 0 评论 -
springboot-cache(redis)
一、搭建基本环境 1、导入数据库文件 创建出department和employee表 2、创建javaBean封装数据 3、整合MyBatis操作数据库 1.配置数据源信息 2.使用注解版的MyBatis; 1)、@MapperScan指定需要扫描的mapper接口所在的包 二、快速体验缓存 步骤: 1、开启基于注解的缓存 @EnableCaching 2、标注缓存...原创 2018-07-09 09:25:04 · 559 阅读 · 0 评论