redis
文章平均质量分 80
现实、太残忍
这个作者很懒,什么都没留下…
展开
-
redis三种集群模式
一、单机模式就是安装一个redis,启动起来,业务调用即可有什么问题?单机故障 容量瓶颈 QPS瓶颈只适合一些性能不高、可靠性不用太强的业务系统。二、主从复制模式可以解决单机模式的单机故障问题外,还有好处:读写分离 容灾备份假设我们要搭建1主2从,分别是6379、6380、6381端口6379主节点redis.conf配置文件不需要动,只把6380、6381两个从节点redis.conf配置文件增加一行(配置主节点的ip端口)slaveof 127.0.0原创 2021-02-02 22:09:56 · 1376 阅读 · 0 评论 -
redis事务
概念在redis中没有隔离级别的概念,都是串行化执行。事务执行过程:是把事务过程中执行的命令放入队列中(队列中的命令要么都执行,要么都不执行),输入exec命令开始执行事务在redis中,单条命令是原子性执行的,但是事务不能保证原子性,且没有回滚。事务中任意命令执行失败,其余命令仍会被执行。事务的三个阶段:开始事务 执行的命令加入队列 执行事务或回滚事务命令:watch key1 key2……:监视一个或多个key,如果事务执行之前,这些key被改动,则事务被打断。(类似乐观锁原创 2021-02-03 12:14:22 · 263 阅读 · 0 评论 -
缓存(redis)四大问题
使用缓存的思路:先查询缓存,若不存在则查询数据库,之后把数据放在缓存一份。一、缓存穿透使用不存在的key进行大量高并发查询,导致缓存无法命中,每次请求都穿透到数据库查询,数据库压力过大(缓存中没有数据,数据库中也没数据)例如:请求id为1的数据,id为1的数据在数据库中根本就不存在,总是会请求数据库。好似缓存不存在一样(没有起到保护数据库作用)。解决方案:接口增加校验拦截非法请求,比如拦截id<0的数据。 将空值缓存起来 使用布隆过滤器(redis4.0之后有布隆过滤器插件原创 2021-01-25 21:20:10 · 415 阅读 · 2 评论 -
redis过期策略和内存淘汰机制
一、过期策略两种方式:惰性删除:当访问key时,再判断key是否过期。过期则删除并返回null。 定期删除:周期性地随机测试一批设置了过期时间的key并处理。过期则删除。#redis.conf配置执行周期,默认每秒10次hz 10定期删除算法:redis配置hz定义了serverCron任务的执行周期,默认是10,代表每秒执行10次。 每次清理过期key不超过CPU时间的25%(250ms)。比如hz为10,则一次清理时间最大25ms。 清理时依次遍历所有db。 从db中随机取原创 2021-01-24 21:30:37 · 656 阅读 · 0 评论 -
redis三种持久化方式
reids提供了两种持久化的方式:RDB和AOFRDB(Redis DataBase):RDB保存某一时间点之前的快照数据。 AOF(Append-Only File):所有的命令行记录以redis请求协议的格式完全持久化存储为aof文件。 混合持久化(4.x):指进行AOF重写时,子进程将当前时间点的数据快照保存为RDB文件格式,将父进程累积命令保存为AOF格式。一、RDB快照有两种触发方式1、通过配置参数:通过一定周期内命令执行的个数,超过阈值即执行快照生成。save .原创 2021-01-24 21:00:37 · 486 阅读 · 0 评论 -
redis 5种数据结构底层实现
引言redis底层c语言结构体(类似于java类)1、redisServer结构体(表示redis服务器)redis服务器中包含多个DB,默认是16个。我们主要关注成员变量redisDb2、redisDB结构体(表示一个DB数据库)注释:dict表示字典。 expires 设置了超时的键超时 id 数据库ID其他的成员变量就跳过了,主要关注成员变量dict,非常重要,因为所有的数据都是通过字典索引的3、dict结构体(表示一个字典)4、dictht结构体(h原创 2021-01-24 17:44:02 · 335 阅读 · 0 评论 -
redis 8种数据类型及常用命令和应用场景
redis常用5种数据结构包括:string、hash、list、set、zset。如图:不常用的3种数据类型有:BitMap(2.2版新加)、Geo(3.2版新加)、HyperLogLog(2.8版新加)。一、字符串string(1)常用操作命令:字符串常用操作:SET key value //存入字符串键值对 MSET key value[key value……] //批量存储字符串键值对 SETNX key value //存入一个不存在的键值对(分布式锁常用命..原创 2021-01-23 15:33:15 · 2264 阅读 · 1 评论 -
linux安装redis
检查依赖gccyum install gcc注意:如果想安装redis6.0以上,则gcc版本不能低于5.3,否则make编译时会报如下错误使用gcc -v查看版本。 #升级gcc命令 yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils #临时修改gcc版本 scl enable devtoolset原创 2020-09-23 10:03:05 · 171 阅读 · 0 评论 -
springboot整合redis的两种连接方式
1、使用jedis2、使用lettuce比较: jedis和lettuce比较:jedis:多线程下,非线程安全,所以使用连接池(不支持异步操作),适用springboot1.xlettuce:多线程下,线程安全,基于Netty支持异步操作,使用springboot2.x 构造CacheManager springboot版本比较:springboot1.x时用:...原创 2020-02-29 15:09:42 · 2093 阅读 · 0 评论