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

厦门专门建设网站的公司微网站建设的第一步是什么 标题

厦门专门建设网站的公司,微网站建设的第一步是什么 标题,重庆做网站需要多少钱,怎么做云购网站简介 Redis 的全称是 Remote Dictionary Server#xff0c;是一个使用 C 语言编写的、开源的#xff08;BSD 许可#xff09;高性能非关系型#xff08;NoSQL#xff09;的键值对数据库。 Redis 的数据是存储在内存中的#xff0c;所以读写速度非常快#xff0c;被广泛…简介 Redis 的全称是 Remote Dictionary Server是一个使用 C 语言编写的、开源的BSD 许可高性能非关系型NoSQL的键值对数据库。 Redis 的数据是存储在内存中的所以读写速度非常快被广泛应用于缓存方向当然也有持久化数据库的用法。 优缺点 优点 读写性能优异 Redis 能读的速度是 110000 次/s写的速度是 81000 次/s数据类型丰富有 String、List、Hash、Set、SortedSet 等单线程原子性Redis 所有的操作都是原子性的也支持多个操作合并后的原子执行丰富的特性Redis 支持发布订阅、通知、key 过期等功能支持持久化Redis 支持 RDB、AOF 等持久化方式高可用性Redis 支持主从复制、哨兵模式、Cluster 等高可用方式 缺点 数据库容量受物理内存的限制不能用作海量数据的读写Redis 难以支持在线扩容修改配置文件之后重启 Redis恢复磁盘上的数据耗费时间较久 使用场景 数据缓存 Redis 是高性能的内存数据库因此缓存是 Redis 最常用的场景。Redis 作为缓存使用的时候一般是采用先更新数据库再删除缓存的 Cache Aside Pattern 策略。 整体的逻辑是业务从 Redis 中读取数据如果 Redis 中访问不到数据然后读取数据库中的数据将数据库中的数据缓存到 Redis 中业务更新数据直接修改数据库中的数据然后将 Redis 中的缓存删除。 这种方案需要注意的就是避免缓存击穿数据的实时性相对较低。 限时业务 Redis 支持给 key 设置过期时间客户端无法访问到过期的 key利用这一特性可以运用在限时的优惠活动、手机验证码等业务场景。 计数器 Redis 的 INCRBY 命令可以实现原子性的递增可以直接作为计数器存储和递增。尤其是该命令在键不存在时会直接初始化值再执行 INCRBY 命令执行成功后会直接返回计算增量之后的数值。 高并发的秒杀活动、分布式序列号的生成、限制手机发送短信次数、接口限制访问次数等需要计数的功能都涉及到计数器的概念尤其是分布式系统会涉及到分布式计数器。 分布式锁 先使用 SETNX 命令来争抢锁结果返回 1 表示设置成功抢到之后再用 EXPIRE 命令给锁加一个过期时间防止忘记释放锁。 从 Redis 的 2.6.12 版本开始可以通过 SET 命令的复杂参数将 SETNX 命令和 EXPIRE 命令合并成一条命令来使用 EX second: 设置键的过期时间为 second 秒使用 EX 选项效果等同于 SETEX 命令。PX millisecond: 设置键的过期时间为 millisecond 毫秒使用 PX 选项效果等同于 PSETEX 命令。NX: 只在键不存在时才对键进行设置操作使用 NX 选项效果等同于 SETNX 命令。XX: 只在键已经存在时才对键进行设置操作。 同样的使用 SET 命令操作成功之后会返回 OK这样才表示抢到了锁。 为了避免分布式锁被误删加锁时可以设置线程 ID 作为 value 值删除时需要线程的线程 ID 和 Redis 存储的值一致才能够删除分布式锁否则只能等待锁自动过期整个删除过程使用事务的方式保证原子性。 排行榜功能 通过 Redis 的 SortedSet 可以实现排行榜功能。 比如说需要展示点赞排行榜可以将用户 ID 作为 SortedSet 的 value 值将用户的点赞数作为 SortedSet 的 score 值SortedSet 提供的 ZRANGEBYSCORE 命令可以快速返回已排序的点赞排行榜。 延时队列 延时队列其实就是一个带有延迟功能的消息队列Redis 可以通过 SortedSet 实现延时队列。 具体的实现如下 将消息内容序列化成一个字符串作为 SortedSet 的 value 值这个消息的到期处理时间作为 score生产者调用 ZADD 命令生产消息消费者可以使用 ZRANGEBYSCORE 命令获取一段时间之前的数据轮询处理通常使用多个线程轮询 SortedSet 获取到期的任务进行处理多个线程是为了保障可用性万一挂了一个线程还有其他线程可以继续处理因为有多个线程所以需要考虑并发争抢任务确保任务不能被多次执行Redis 的 ZREM 命令是多线程争抢任务的关键ZREM 命令会返回被成功移除的成员数量可以通过 ZREM 命令来决定任务的唯一属主同时也要注意一定要进行异常捕获避免因为个别任务处理问题导致循环异常退出同一个任务可能会被多个进程取到之后再使用 ZREM 命令进行争抢那些没抢到的进程都是白取了一次任务这是浪费通常可以使用 Lua 脚本的方式将 ZRANGEBYSCORE 命令和 ZREM 命令一同挪到服务器端进行原子化操作这样多个进程之间争抢任务时就不会出现这种浪费了。 异步队列 第一种方案 是使用 List 结构作为异步队列RPUSH 命令生产消息LPOP 命令消费消息。当使用 LPOP 命令没有得到消息的时候需要适当 sleep 一会再重试在这里 sleep 会导致消息的处理延迟增加。 如果不做 sleep 重试改进的 第二种方案 是使用 LPOP 命令的阻塞版本 BLPOP 命令在 List 队列中没有消息的时候它会阻塞直到消息到来一旦数据到来则立刻醒过来消息的延迟几乎为零。但是如果线程一直阻塞Redis 的客户端连接就成了闲置连接闲置过久服务器一般会主动断开连接减少闲置资源占用。这个时候 BLPOP 命令会抛出异常来代码中需要处理这样的异常。 除了 List 队列之外第三种方案 是使用 Pub/Sub 订阅者模式实现一对多的消息队列。但是 Redis 的发布订阅功能是无状态的对于发布者来说无法知道发布的消息是否被订阅者接收到在消费者下线的情况下生产的消息会丢失。
http://www.w-s-a.com/news/773651/

相关文章:

  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典
  • 导航网站设计方案个人网站推广方法
  • 网站排名易下拉教程防wordpress花园
  • 计算机网站建设 是什么意思现在网站建站的主流语言是什么
  • php网站跟随导航西安百姓网免费发布信息网
  • 濮阳做公司网站html5 特效网站
  • ppt设计器怎么打开深圳seo网络推广营销
  • 建设银行网站用360浏览器建设信用卡中心网站
  • 创建公司网站 教程广州建设局
  • 详述网站建设的过程简答题ui培训设计怎么样
  • 动易网站官网ppt主题大全素材
  • 怎样用eclipse做网站可以做宣传图的网站
  • 哪里可以做游戏视频网站做网站平台应该注意哪些
  • 网站后期推广是谁来做网页制作步骤作答题
  • 全屋装修设计定制整装成都网站优化多少钱
  • html5购物网站模板一个网站两个数据库
  • 个人网站怎么做微信支付网站建设项目介绍
  • 建网站合同网站适配移动端和PC端
  • 网站建设培训机构哪里好html5开发wap网站
  • 免费自助建站源码学而思网校官网
  • 中国最大的网站制作公司青海省高等级公路建设管局网站
  • 建设网站对服务器有什么要求吗wordpress去除更新提示
  • 找个为公司做网站的手机端原神
  • 邯郸手机建站价格公众号开发者权限哪里添加