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

企业建设网站有什么好处开发网站需要多少钱

企业建设网站有什么好处,开发网站需要多少钱,深圳最近消息,网页设计公司的调研这里写自定义目录标题 📝 redis的知识点数据结构及其特性,用途和操作方法持久化高可用分布式锁发布订阅性能优化安全性数据分片缓存策略键过期删除策略内存淘汰策略 🤗 总结归纳📎 参考文章 😀 这里写文章的前言&#…

这里写自定义目录标题

  • 📝 redis的知识点
    • 数据结构及其特性,用途和操作方法
    • 持久化
    • 高可用
    • 分布式锁
    • 发布订阅
    • 性能优化
    • 安全性
    • 数据分片
    • 缓存策略
      • 键过期删除策略
      • 内存淘汰策略
  • 🤗 总结归纳
  • 📎 参考文章

📝 redis的知识点

数据结构及其特性,用途和操作方法

数据结构底层特性用途操作方法
StringSDS简单的kv缓存,计数器,分布式锁set key value
List双端链表/压缩链表key v1,v2 有序,可重复消息队列,评论列表,时间线等有序数据lpush/rpush key value value
Hash压缩链表/字典key key,value[key,value…]用户,商品信息等对象,更接近java里的对象hset key key1 value1
Set字典key v1,v2… 无序,唯一标签,用户id集合等,方便去重sadd key v1 v2
ZSet压缩列表/跳表排序,权重排行榜,带权重的消息队列等需要排序的场合zadd key score v1 score v2

持久化

特性rdbaof
存储类型二进制文件操作命令日志文件
命令SAVE # 阻塞服务器进程,保存快照 BGSAVE # 在后台异步保存快照bgrewriteaof 重写
配置save 900 1 # 900秒内至少有1个键被修改时自动保存RDB快照 save 300 10 # 300秒内至少有10个键被修改时自动保存RDB快照 save 60 10000 # 60秒内至少有10000个键被修改时自动保存RDB快照 dbfilename dump.rdb # RDB文件名 dir /path/to/your/backup/directory # RDB文件保存目录appendonly yes # 启用AOF持久化 appendfsync always # 每个写操作都同步到磁盘 appendfilename “appendonly.aof” # AOF文件名 dir /path/to/your/appendonly/directory # AOF文件保存目录
是否主线程save主线程 bgsave子线程子线程
优点数据快照,恢复速度块文件大,恢复速度慢
缺点会丢失最后一次快照后的数据安全性高,高可用

高可用

特性主从哨兵集群
说明一主多从一主多从+哨兵监控主节点多主多从+hash槽 数据分片
设置slaveof通过sentinel.conf配置CLUSTER MEET
故障转移不支持支持支持

分布式锁

特性描述
获取锁使用SETNX命令(Set if Not eXists)来在Redis中设置一个键值对作为锁,如果该键不存在,则设置成功,表示获取到锁。
锁的持有时间可以为锁设置一个超时时间,以防止锁被持有太久而导致死锁。可以使用EXPIRE命令来为锁设置过期时间。
释放锁使用DEL命令来删除锁键来释放锁。
避免竞态条件在设置锁时,可以为锁键设置一个唯一的标识(例如,使用UUID),以确保只有持有锁的一方才能释放它。
处理死锁可以使用Lua脚本来原子性地释放锁,避免在解锁过程中由于某些原因导致死锁。
自动续期使用SET命令和EX选项来为锁键设置超时时间,并在持有锁期间定期更新超时时间,以避免锁过期。
并发控制可以使用WATCH和MULTI/EXEC命令组合来实现乐观锁,以确保在锁被释放之前,其他客户端无法获取锁。
锁粒度可以实现多种锁粒度,例如全局锁和分布式资源锁,以满足不同的应用场景需求。

附上什么情况下会发生死锁:

在使用Redis来实现分布式锁时,死锁通常是由于不正确的锁的使用和释放方式引起的。以下是一些可能导致死锁的情况:

  1. 未释放锁:如果一个客户端成功获取锁但在后续操作中没有正确释放锁,那么其他客户端将永远无法获取这个锁,从而导致死锁。
  2. 锁的超时时间不合理:如果设置锁的超时时间太短,那么在锁还有效的情况下,其他客户端可能会尝试获取锁,导致死锁。另一方面,如果锁的超时时间太长,那么即使一个客户端意外宕机或崩溃,其他客户端也无法获得锁,同样可能导致死锁。
  3. 并发更新:如果多个客户端同时尝试获取和更新锁的状态,可能会导致竞争条件,从而破坏了锁的正确性,进而导致死锁。
  4. 网络问题:如果由于网络问题或Redis集群分区,某个客户端无法及时获得锁释放的消息,它可能会陷入等待锁释放的状态,导致死锁。
  5. 复杂的锁协议:一些复杂的锁协议,如读写锁或带有多个状态的锁,可能更容易出现问题,需要更谨慎的实现和测试,以防止死锁。

发布订阅

PUBLISH channel “消息内容”

SUBSCRIBE channel

性能优化

安全性

数据分片

缓存策略

键过期删除策略

Redis的过期删除策略就是:惰性删除和定期删除两种策略配合使用。

惰性删除:Redis的惰性删除策略由 db.c/expireIfNeeded 函数实现,所有键读写命令执行之前都会调用 expireIfNeeded 函数对其进行检查,如果过期,则删除该键,然后执行键不存在的操作;未过期则不作操作,继续执行原有的命令。

定期删除:由redis.c/activeExpireCycle 函数实现,函数以一定的频率运行,每次运行时,都从一定数量的数据库中取出一定数量的随机键进行检查,并删除其中的过期键。

注意:并不是一次运行就检查所有的库,所有的键,而是随机检查一定数量的键。

定期删除函数的运行频率,在Redis2.6版本中,规定每秒运行10次,大概100ms运行一次。在Redis2.8版本后,可以通过修改配置文件redis.conf 的 hz 选项来调整这个次数。

内存淘汰策略

在配置文件redis.conf 中,可以通过参数 maxmemory 来设定最大内存

当现有内存大于 maxmemory 时,便会触发redis主动淘汰内存方式,通过设置 maxmemory-policy ,有如下几种淘汰方式:

1)volatile-lru 利用LRU算法移除设置过过期时间的key (LRU:最近使用 Least Recently Used ) 。

2)allkeys-lru 利用LRU算法移除任何key (和上一个相比,删除的key包括设置过期时间和不设置过期时间的)。通常使用该方式

3)volatile-random 移除设置过过期时间的随机key 。

4)allkeys-random 无差别的随机移除。

5)volatile-ttl 移除即将过期的key(minor TTL)

6)noeviction 不移除任何key,只是返回一个写错误 ,默认选项,一般不会选用。

🤗 总结归纳

掌握这些高级Redis知识点将使你在面试中展现出对Redis的深刻理解和实际应用经验。同时,还应准备答案,以解释你在实际项目中如何使用Redis来解决特定的问题和挑战。

📎 参考文章

  • chatGPT和claude2
http://www.qdjiajiao.com/news/9013.html

相关文章:

  • 二类电商平台怎么做神马搜索排名seo
  • 网站开发安装win10家庭版深圳网站建设专业乐云seo
  • dedecms 做门户网站做个公司网站大概多少钱
  • wordpress特定文章小工具seo引擎搜索入口
  • 做百度移动网站排名软今日头条新闻最新事件
  • 178网站建设黑帽seo联系方式
  • 常规做网站要在工信部认证吗信息流广告公司排名
  • 成都网站建设电话网络营销经典案例
  • 邢台做网站咨询电工培训技术学校
  • 网站建设论坛报告cba目前排行
  • 做货代网站佛山网站快速排名提升
  • 南宁网站建设设计制作百度推广点击收费标准
  • 交互做的好的中国网站武汉官网优化公司
  • dw网页制作教程完整版谷歌优化技巧
  • 服饰东莞网站建设镇江关键字优化公司
  • 扬州市开发区建设局网站首页制作网站费用
  • wordpress主题个人博客seo职业培训班
  • 网站的banner轮播怎么做重庆seo薪酬水平
  • 中小企业如何建设网站重庆seo整站优化报价
  • 网站建设及维护价钱成都新闻最新消息
  • 国家网站建设网时代教育培训机构官网
  • 彩票网站代理怎么做沧州seo包年优化软件排名
  • 店面设计有哪些石景山区百科seo
  • 好的网站设计题目印度疫情为何突然消失
  • 怎么对网站做压力测试深圳搜索引擎优化seo
  • 望野古诗王绩seo排名赚app下载
  • 绿色调网站哈尔滨网站建设
  • 企业自助建站模板上海职业技能培训机构
  • 昆明做网站建设的公司排名临沂seo公司稳健火星
  • 企业做网站多少钱流量查询网站