当前位置: 首页 > news >正文

响应式企业展示型网站wordpress用户站内信

响应式企业展示型网站,wordpress用户站内信,网站建设 中标公告,哪里做网站公司好总结了某公司面试遇到的值得整理记录的面试题#xff0c;比较侧重于Redis方面。 目录 Redis持久化配置 RDB AOF Redis rdb日志文件路径编辑 命令行参数设置 Redis事务 Redis事务介绍 Redis事务阶段 watch监听 Mysql隔离级别 1.READ UNCOMMITTED 2.READ COMMITTED … 总结了某公司面试遇到的值得整理记录的面试题比较侧重于Redis方面。 目录 Redis持久化配置 RDB AOF Redis rdb日志文件路径编辑 命令行参数设置 Redis事务 Redis事务介绍 Redis事务阶段 watch监听 Mysql隔离级别 1.READ UNCOMMITTED 2.READ COMMITTED 3.REPEATABLE READ 4.SERIALIZABLE App登录验签 踢出并保持30分钟不能登录实现方案 Redis磁盘空间满清理冷数据 删除过期的键 使用LFU算法删除冷门键 使用volatile-lru或volatile-lfu策略控制过期键的删除 定期进行数据持久化 Redis 确定哪些是热key 缓存雪崩 产生原因 影响 防范策略 设置不同的过期时间 使用热备份 数据预热 使用限流和熔断机制 缓存击穿 产生原因 影响 防范策略 设置热点数据永不过期 使用互斥锁 缓存穿透 产生原因 影响 防范策略 缓存空值 使用布隆过滤器 来源分组 只要十个分组 一条sql计算两种条件的数量 总结 Redis持久化配置 Redis支持两种持久化方式RDBRedis DataBase和AOFAppend Only File。 RDB 根据配置定时将内存中的数据快照保存到磁盘的一个压缩二进制文件中。 Redis的redis.conf配置文件中相关的RDB持久化配置参数 # 是否开启RDB持久化save seconds changes# 例如如下配置表示900秒内至少1个键被修改则触发保存save 900 1# RDB文件名dbfilename dump.rdb# RDB文件和AOF文件的保存位置dir /path/to/your/redis/directory# 是否在导出.rdb文件时使用LZF压缩rdbcompression yes AOF 每个写命令都通过append操作保存到文件中。 Redis的redis.conf配置文件中相关的AOF持久化配置参数 # 是否开启AOF持久化appendonly yes# AOF文件名appendfilename appendonly.aof# AOF文件的保存位置dir /path/to/your/redis/directory# AOF文件的更新频率appendfsync everysec# 是否在AOF重写期间对新写操作进行同步no-appendfsync-on-rewrite no# AOF文件大小超过此值时触发重写auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb 注意 开启AOF时appendfsync的设置对性能影响较大everysec为推荐配置即每秒同步一次。 Redis rdb日志文件路径编辑 在redis的配置未见redis.conf中可以找到以下配置项 # 默认的RDB名称dump.rdbdbfilename dump.rdb 可以将dbfilename配置为自定义的RDB名称例如 dbfilename mydata.rdb 命令行参数设置 在启动Redis的命令行中可以使用参数--dbfilename来设置RDB名称例如 redis-server --dbfilename mydata.rdb Redis事务 事务是指一个完整的动作要么全部执行要么什么也没有做。Redis 事务不是严格意义上的事务只是用于帮助用户在一个步骤中执行多个命令。单个 Redis 命令的执行是原子性的但 Redis 没有在事务上增加任何维持原子性的机制所以 Redis 事务的执行并不是原子性的。 Redis事务介绍 Redis 事务可以理解为一个打包的批量执行脚本但批量指令并非原子化的操作中间某条指令的失败不会导致前面已做指令的回滚也不会造成后续的指令不做。 redis事务的主要作用就是串联多个命令防止别的命令插队。 Redis 在形式上看起来也差不多MULTI、EXEC、DISCARD 这三个指令构成了 redis 事务处理的基础。 MULTI用来组装一个事务从输入Multi命令开始输入的命令都会依次进入命令队列中但不会执行直到输入Exec后redis会将之前的命令依次执行。 EXEC用来执行一个事务。 DISCARD用来取消一个事务。 Redis事务阶段 redis事务分2个阶段组队阶段、执行阶段 组队阶段只是将所有命令加入命令队列 执行阶段依次执行队列中的命令在执行这些命令的过程中不会被其他客户端发送的请求命令插队或者打断。 所有的指令在 exec 之前不执行而是缓存在服务器的一个事务队列中服务器一旦收到 exec 指令才开执行整个事务队列执行完毕后一次性返回所有指令的运行结果。因为 Redis 的单线程特性不用担心自己在执行队列的时候被其它指令打搅可以保证他们能得到的有顺序的执行。 watch监听 WATCH在执行multi之前先执行watch key1 [key2 …]可以监视一个或者多个key若在事务的exec命令之前这些key对应的值被其他命令所改动了那么事务中所有命令都将被打断即事务所有操作将被取消执行。 unwatch取消 WATCH 命令对所有 key 的监视。如果在执行 WATCH 命令之后 EXEC 命令或 DISCARD 命令先被执行了的话那么就不需要再执行UNWATCH 了。 Mysql隔离级别 在 MySQL中事务的隔离级别有以下 4 种 读未提交READ UNCOMMITTED 读已提交READ COMMITTED 可重复读REPEATABLE READ 序列化SERIALIZABLE MySQL 默认的事务隔离级别是可重复读这4种隔离级别的说明如下。 1.READ UNCOMMITTED 未提交读该隔离级别的事务可以看到其他事务中未提交的数据。该隔离级别因为可以读取到其他事务中未提交的数据而未提交的数据可能会发生回滚因此把该级别读取到的数据称之为脏数据把这个问题称之为脏读。 2.READ COMMITTED 提交读该隔离级别的事务能读取到已经提交事务的数据因此它不会有脏读问题。但由于在事务的执行中可以读取到其他事务提交的结果所以在不同时间的相同 SQL查询中可能会得到不同的结果这种现象叫做不可重复读。 3.REPEATABLE READ 可重复读是MySQL的默认事务隔离级别它能确保同一事务多次查询的结果一致。但也会有新的问题比如此级别的事务正在执行时另一个事务成功的插入了某条数据但因为它每次查询的结果都是一样的所以会导致查询不到这条数据自己重复插入时又失败因为唯一约束的原因。明明在事务中查询不到这条信息但就是插入不进去这就叫幻读 Phantom Read。 4.SERIALIZABLE 序列化事务最高隔离级别它会强制事务排序使之不会发生冲突从而解决了脏读、不可重复读和幻读问题但因为执行效率低所以真正使用的场景并不多。 App登录验签 踢出并保持30分钟不能登录实现方案 账号密码登录后通过设置的字符串中取得部分字符串加上通过uniqid函数获得的唯一字符串及随机数字组合成token。设置此token为当前用户的cookie。 并把用户信息数组进行非对称加密处理后返回客户端。 验证是否登录时客户端需把登录返回的信息进行解密后获取token和用户id及加盐字符串组合后通过hash生成一个签名。并把签名和登录token和用户id组合设置为cookie。通过https协议发送给后端后端通过相同方式进行验证以判断请求是否合法及是否登录。 踢出登录设置用户的状态为禁用并设置禁止登录的最终时间戳为当前的30分钟后时间戳 Redis磁盘空间满清理冷数据 当Redis的空间满了需要进行清理工作以确保其正常运行。以下是几种常见的清理方法 删除过期的键 Redis支持设置键的过期时间一旦过期键会自动被删除。可以使用EXPIRE或PEXPIRE命令设置键的过期时间或使用TTL命令查看键的剩余过期时间。可以编写一个定时任务来定期检查并删除过期的键。 使用LFU算法删除冷门键 Redis还支持使用LFU最近最少使用算法来删除键可以在配置文件中设置maxmemory-policy为allkeys-lfu。这样当Redis的内存空间快要满时会优先删除最近最少使用的键。 使用volatile-lru或volatile-lfu策略控制过期键的删除 可以在配置文件中设置maxmemory-policy为volatile-lru或volatile-lfu来控制删除过期键时使用的算法。这样Redis会优先删除设置了过期时间的键以便为新的键腾出空间。 定期进行数据持久化 可以使用Redis的RDB或AOF持久化方式将数据写入到磁盘上。这样即使Redis的内存空间满了数据仍然可以从磁盘上读取避免数据丢失。可以根据实际需求来决定数据持久化的频率和是否进行压缩。 总的来说清理Redis的空间可以通过删除过期键、使用LRU或LFU算法删除冷门键、控制过期键的删除策略以及进行数据持久化等方式来实现。根据实际情况和需求选择适当的清理方法以确保Redis的正常运行。 Redis 确定哪些是热key 可以通过分析redis的访问日志或使用redis自带的监控工具来实现。 1.使用info命令获取当前的统计信息包括所有的key访问次数 2.分析这些信息找出访问频率高的key redis-cli info state | grep keyspace 这个命令会列出所有key的访问次数。 然而redis本身不会跟踪每个key的具体访问频率。 要更具体需要在应用程序层面进行跟踪列如通过记录每个key的访问次数。 在应用程序中通过中间件或拦截器来记录每个key的访问次数并定期将这些信息发送到后台服务进行统计分析。 缓存雪崩 缓存雪崩是指在某一时刻大量的缓存数据同时失效导致大量的请求直接打到数据库上从而引发数据库的压力激增可能导致整个系统的崩溃这种现象被称为缓存雪崩。 产生原因 缓存雪崩通常由于缓存的过期策略或者缓存服务器的故障导致。例如如果我们将大量的缓存数据设置为在同一时间点过期那么在这个时间点这些缓存数据将同时失效导致大量的请求直接打到数据库上从而可能引发缓存雪崩。 影响 缓存雪崩的影响是灾难性的。由于大量的请求直接打到数据库上数据库的压力激增可能导致数据库崩溃从而影响整个系统的正常运行。在极端情况下可能导致整个系统的崩溃。 防范策略 防止缓存雪崩的策略主要有以下几种 设置不同的过期时间 通过为每个缓存项设置稍微不同的过期时间可以避免大量的缓存数据同时失效。 使用热备份 可以使用热备份的缓存服务器当主缓存服务器出现问题时可以立即切换到备份服务器。 数据预热 在缓存数据过期前提前将数据加载到缓存中避免缓存数据的同时失效。 使用限流和熔断机制 通过限流和熔断机制可以防止数据库被大量的请求打垮。 缓存击穿 缓存击穿是指一个存在的数据在缓存中过期导致所有的请求都直接打到数据库造成数据库短时间内压力过大。这种现象被称为缓存击穿。 产生原因 缓存击穿通常发生在一个热点数据的缓存过期的时候。由于这个数据非常热门所以在缓存过期的瞬间大量的请求会直接打到数据库。 影响 缓存击穿会导致大量的请求直接访问数据库从而增加数据库的负载可能会导致数据库性能下降甚至崩溃。 防范策略 防止缓存击穿的策略主要有以下几种 设置热点数据永不过期 对于一些访问频率非常高的热点数据可以设置为永不过期这样就可以避免因为缓存过期而导致的缓存击穿。 使用互斥锁 当缓存失效的时候不是立即去load db而是先使用缓存工具的某些带成功操作返回值的操作比如Redis的SETNX或者Memcache的ADD去set一个mutex key当操作返回成功时再去load db。这样可以防止大量的并发请求去数据库加载数据。 缓存穿透 缓存穿透是指查询一个数据库中不存在的数据由于缓存中也没有所以每次查询都会直接访问数据库。如果有大量此类请求就会对数据库造成很大压力这种现象被称为缓存穿透。 产生原因 缓存穿透通常发生在查询一个数据库中不存在的数据时。由于缓存中也没有这个数据所以每次查询都会直接访问数据库。如果有大量此类请求就会造成缓存穿透。 影响 缓存穿透会导致大量的请求直接访问数据库从而增加数据库的负载可能会导致数据库性能下降甚至崩溃。 防范策略 防止缓存穿透的策略主要有以下几种 缓存空值 即使数据库中没有某个值也可以在缓存中存储一个空值或特殊标记这样当查询这个值时就可以直接从缓存中获取而不需要访问数据库。 使用布隆过滤器 布隆过滤器是一种空间效率极高的概率型数据结构可以用来判断一个元素是否在一个集合中。我们可以将所有可能存在的数据哈希到布隆过滤器中当查询一个数据时先判断它是否在布隆过滤器中如果不在就可以直接返回而不需要访问数据库。 来源分组 只要十个分组 SELECT source FROM service_order GROUP BY source limit 10; 一条sql计算两种条件的数量 SELECT count(case when to_state 2 THEN 0 end) as num1, count(case when to_state0 THEN 0 end) as num2 FROM service_order; 总结 这家公司的技术似乎比较擅长Redis领域的技术。
http://www.dnsts.com.cn/news/182778.html

相关文章:

  • 学生做义工网站东营考试信息网官网2020
  • 青海网站建设加q5299丶14602做词织梦汽车网站模板
  • 服装设计网站哪个好网页设计html代码大全图片
  • 分享一个网站能用的哈佛门户网站建设特点
  • 唐山的网站建设wordpress本地搬家到服务器
  • 网站模版好建设吗宣传片拍摄方案怎么写
  • 论坛网站开发成本网站编程工具
  • 网站有没有做301如何使用网站模板建设网站
  • 建设电影会员网站个人网站注册
  • 做网站遇上麻烦客如何让新网站被收录
  • 网站建设项目软件开发招标文件江门网站建设方案
  • ssh框架做音乐网站wordpress页面如何排序
  • ps做网站页面美工百度风云榜游戏
  • 广东建设基金管理有限公司网站网站建设行业市场规模
  • 反腐网站建设的目的哇塞fm网站维护
  • 科讯cms 网站地图app推广引流
  • 建立自己的摄影网站重庆网站建设安全
  • 国外网站做淘宝客design工业设计
  • 营销网站建设的公司哪家好商城小程序开发需要多少钱
  • 哪个网站能上传自己做的简历官网网站建设公司
  • 网站流量下滑做logo的网站
  • 优秀的手机网站案例网站文章后台写完前台不显示
  • 最新招聘信息seo技术
  • 网站在线制作平台wordpress文章中图片
  • 一流专业建设网站大兴西红门网站建设
  • 今科云平台网站建设技术开发自助建站免费申请个人网页
  • 建立手机网站万户网络待遇怎么样
  • 折800网站模板乐安网站建设
  • 广饶县城乡规划建设局网站网站安全建设目的是什么
  • 手机开发网站教程石家庄做网站的