Redis
文章平均质量分 60
Redis
L_S_Chen
厚积薄发
展开
-
Redis-穿透和雪崩
Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。 另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前,业界也都有比较流行的解决方案。 缓存穿透概念:缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时原创 2021-04-28 08:48:31 · 80 阅读 · 0 评论 -
Redis-主从复制/哨兵模式
主从复制概念主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。 默认情况下,每台Redis服务器都是主节点 且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的主要作用包括:1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。原创 2021-04-26 16:00:36 · 85 阅读 · 0 评论 -
Redis-发布订阅
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。微信、 微博、关注系统! Redis 客户端可以订阅任意数量的频道。 订阅/发布消息图: 第一个:消息发送者, 第二个:频道 第三个:消息订阅者! 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就原创 2021-04-26 15:01:06 · 62 阅读 · 0 评论 -
Redis-持久化
Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能! 什么是RDB在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了原创 2021-04-26 14:49:16 · 57 阅读 · 0 评论 -
Redis-conf详解
单位配置文件 unit单位 对大小写不敏感! 包含别的配置文件网络bind 127.0.0.1 # 绑定的ip protected-mode yes # 保护模式 port 6379 # 端口设置通用GENERALdaemonize yes # 以守护进程的方式运行,默认是 no,我们需要自己开启为yes! pidfile /var/run/redis_6379.pid # 如果以后台的方式运行,我们就需要指定一个 pid 文件!# 日志 ...原创 2021-04-26 14:22:48 · 96 阅读 · 0 评论 -
Redis-SpringBoot整合
说明: 在 SpringBoot2.x 之后,原来使用的jedis 被替换为了 lettucejedis : 采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全,使用 jedis pool 连接池! 更像 BIO 模式 lettuce : 采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据了,更像 NIO 模式 源码分析:@Bean @ConditionalOnMissingBean(name = "redisTemplate") /.原创 2021-04-26 13:47:39 · 148 阅读 · 0 评论 -
Redis-Jedis
Jedis 是 Redis 官方推荐的 java连接开发工具! 使用Java 操作Redis 中间件!如果你要使用java操作redis,那么一定要对Jedis 十分的熟悉!使用Jedis我们首先要导入相关依赖<!--导入jedis的包--> <dependencies> <!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency>原创 2021-04-26 11:39:11 · 74 阅读 · 0 评论 -
Redis-事务/乐观锁/悲观锁
事务Redis事务本质是一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按照顺序执行一次性、顺序性、排他性!执行一些列的命令!Redis事务没有隔离级别的概念!所有的命令在事务中,并没有直接被执行!只有发起执行命令的石斛才会执行!ExecRedis单条命令是保存原子性的,但是事务不保证原子性!Redis的事务:开启事务(multi) 如对命令(......) 执行事务(exec)正常执行事务127.0.0.1:6379> multi #原创 2021-04-26 11:25:50 · 84 阅读 · 0 评论 -
Redis-Bitmap
位存储统计用户信息,活跃,不活跃! 登录 、 未登录! 打卡,365打卡! 两个状态的,都可以使用Bitmaps! Bitmap 位图,是一种数据结构! 都是操作二进制位来进行记录的,就只有0 和 1 两个状态! 365 天 = 365; bit 1字节 = 8bit ;一年就是46 个字节左右!测试使用bitmap 来记录 周一到周日的打卡!周一:1 周二:0 周三:0 周四:1 ......查看某一天是否有打卡!127.0.0.1:6379>...原创 2021-04-26 10:26:31 · 48 阅读 · 0 评论 -
Redis-Hyperloglog基数
什么是基数A {1,3,5,7,8,7} B{1,3,5,7,8} 基数(不重复的元素) = 5基数可以接受误差! 简介Redis 2.8.9 版本就更新了 Hyperloglog 数据结构Redis Hyperloglog 基数统计的算法!优点:占用的内存是固定,2^64 不同的元素的技术,只需要废12KB内存!如果要从内存角度来比较的话 Hyperloglog 首选! 如果允许容错,那么一定可以使用 Hyperloglog ! 如果不允许容错,就使用 se.原创 2021-04-26 10:19:58 · 52 阅读 · 0 评论 -
Redis-Geospatial 地理位置
想要实现朋友的定位,附近的人,打车距离计算这类的功能吗?Redis的Geo可以轻松帮你实现这个难题 Redis 的 Geo 在Redis3.2 版本就推出了! 这个功能可以推算地理位置的信息,两地之间的距离,方圆几里的人! 我们可以查询一些测试数据,各地经纬度查询:http://www.jsons.cn/lngcodeinfo/0706D99C19A781A3/ Geo只有六个命令: GEOADD GEODIST GEOHASH GEOPOS GEORADIUS GEORADIUSBYM原创 2021-04-26 10:09:22 · 118 阅读 · 0 评论 -
Redis序列化配置
@Configurationpublic class RedisConfig { @Bean public RedisTemplate<?, ?> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<?, ?> redisTemplate = new RedisTemplate<>(); redisTemplate.s.原创 2021-04-13 16:19:19 · 857 阅读 · 0 评论 -
Redis五大数据类型
类型 简介 特性 场景 String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M --- Hash(字典) 键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) 存储、读取、修改用户属性 List(列表) 链表(双向链表) 增删快,提供了操作某翻译 2021-03-18 16:36:43 · 66 阅读 · 0 评论