当前位置: 首页> 游戏> 单机 > 广告设计公司核心优势_中式建筑公司网站_软文300字介绍商品_windows7优化大师官方下载

广告设计公司核心优势_中式建筑公司网站_软文300字介绍商品_windows7优化大师官方下载

时间:2025/7/9 8:06:51来源:https://blog.csdn.net/qq_56486237/article/details/145909296 浏览次数:0次
广告设计公司核心优势_中式建筑公司网站_软文300字介绍商品_windows7优化大师官方下载

概念(是什么)

Redis是一个C语言写的非关系型数据库,支持网络,可基于内存,key-value键值对类型的数据库。

redis数据存在内存中,读写超快,广泛用于缓存。

作用(能干什么)

缓存

计数器

排行榜

去重

消息队列

分布式锁

Redis线程模型

        6.0之前是单线程;也就是处理用户连接请求与与读写操作都是一个线程完成的

        6.0之后是多线程;这里处理用户网络请求采用了多线程,读写操作实质上还是单线程,

                                        所以Redis依然是并发安全的

为什么Redis是单线程模型速度也很快?

1.Redis是基于内存进行操作的,所以性能很高

2.Redis底层是哈希表结构,查找修改速度很快

3.单线程避免了上下文切换,省去了时间与性能上的开销,并且不会发生死锁情况

Redis持久化

1.RDB方式

以快照形式将某一时刻的数据保存到一个rdb文件中,持久化到磁盘。

可以在配置文件(redis.conf)中自行配置 save m n 即在m秒内数据集被修改n次将自动触发rdb持久化,也可以在客户端中通过手动save命令触发rdb持久化。不需要时只需注释掉所有save行。

2.AOF方式

以日志形式将redis执行过的每一条指令记录到一个aof文件中,redis启动时就会读取该文件重新将日志中的指令重新执行一次来实现redis持久化。

启用方式

修改配置文件开启AOF机制(默认关闭)

appendonly no    找到这一行代码将no改成yes

appendfilename appendonly.aof  后面是文件名,可以自行修改

 AOF同步机制

appendfsync always     每次修改都会同步,消耗性能

appendfsync eyerysec  每秒进行一次同步操作,有可能会丢失这一秒的数据

Redis和Mysql如何保证数据一致

延时双删 

1.先删除redis缓存数据

2.更新mysql数据

3.延时几百毫秒后再次删除redis中的数据

这样就算有线程读取的没有及时更新的mysql中的数据也会在短暂延时后再次删除。

Redis事务

为了保证一组中的多条命令作为一个整体执行,即使在这个整体中有命令执行错误也不会影响其余命令的执行。

举个例子:一个家长让自己的孩子(a,b,c)去食堂吃饭,如果不开启事务,这三个孩子可能不会紧挨着,也就是可能有其他孩子插队(a,x,b,y,c),但是一旦开启事务,那么无论其他孩子怎么插队,也不会改变abc紧挨的队形。

multi(开启事务)

set a 1

set b 2

set c 3

exec(提交事务)

java代码实现事务控制
    redisTemplate.multi();//开启redis事务
         //命令1
          
         //命令2
         
         //命令3
    redisTemplate.exec();//提交redis事务

主从复制

 redis集群,就是以其中一台Redis服务器作为主机,剩余的作为从机,将主机数据复制到从机中,主机即为主节点,从机为从节点,数据复制是单向的,只能由主节点到从节点间。

一主多从,实现数据的备份,如果其中一台机器宕机,其余机器还可以正常运转,以保证数据的完整。主机支持读写,从机只能对主机数据进行读取和同步。

主从复制的作用

1.当主节点出现问题时,可以由从节点提供服务,实现快速地故障恢复

2.实现负载均衡,在主从复制的基础上,配合读写分离,由主节点提供写服务,从节点提供读服务,分担服务器负载

哨兵机制

哨兵是redis集群中的一个进程,哨兵机制的原理就是通过哨兵发送命令,等待Redis服务器回应,从而监视多个Redis实例,如果主机出现宕机情况时,哨兵机制会在从机中选举一个从机作为主机。

哨兵集群,redis集群中配置多个哨兵,哨兵监视多个Redis服务器,同时哨兵间互相监视。

KEY过期策略

Redis同时使用以下两种过期策略

1.惰性策略

        某个键过期后,不会立刻删除,而是等到下一次被使用时才会删除。缺点是浪费内存,还要维护一个字段记录key是否过期

2.定时策略

每隔一定时间自动扫描一定数量过期的key,通过调整定时扫描的时间间隔和每次扫描的限定时耗,可以使CPU和内存资源达到最优

缓存穿透、缓存击穿、缓存雪崩

1.缓存穿透

数据在mysql中不存在,查询redis没有,还是会查询mysql,从而压垮数据库。

数据库没有,redis也没有

解决办法

                对请求数据进行校验,拦截非法请求

                在redis中设置一对key-null,就不会反复去mysql中查找了。

2.缓存击穿 

在mysql中存在,在redis中某个时间过期了,就会访问mysql,如果请求量大,就可能把后端数据库压垮

解决办法

                热点数据永远不过期

                在第一个请求查询数据库时进行加锁,第一个访问到之后放入缓存,就不会再次查询  数                    据库了    

3.缓存雪崩 

高并发情况下,大量缓存失效,数据库调用量暴增,压垮数据库。

解决办法:

                随机设置key的失效时间,避免大量key同时失效

                设置定时任务,当缓存快要失效时,重新设置失效时间

                不设置过期

                集群部署,将数据分布在不同Redis库中

关键字:广告设计公司核心优势_中式建筑公司网站_软文300字介绍商品_windows7优化大师官方下载

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: