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

wordpress自适应图片主题重庆seo优化

wordpress自适应图片主题,重庆seo优化,美女做爰免费观看视频网站,三亚网站制作欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 引言Redis自己是怎么介绍的?String字…

欢迎来到啾啾的博客🐱。
记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。
有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。

目录

  • 引言
  • Redis自己是怎么介绍的?
    • String字符串
    • JSON
    • Lists
    • Sets
    • Hashes
    • Sorted Sets
    • Bitmaps
  • 常见Redis应用
    • 缓存
    • 分布式锁

引言

作为一个高效简单的内存数据库,Redis有哪些具体应用场景?

PS:本系列开始于“黄健宏”老师的老本著作《Redis设计与实现》、《Redis应用实例》。
我从问题的角度做了总结与拓展,前面几篇内容更偏向设计思想与机制总结。
阿里有出过《Redis最佳实践》,里面有更多的企业级应用实例,也推荐看看。

Redis自己是怎么介绍的?

在官网上,Redis有对自己的数据结构做介绍的同时并介绍用法,如下:

String字符串

Redis String可以用于存储字节序列,包括文本、序列化对象和二进制数组。注意值不能大于512MB。默认情况下,单个 Redis 字符串的最大大小为 512 MB。

  • set 命令有 nx 与 xx选项
    nx:要求key不存在才会成功
    xx:要求key存在才会成功
    ![[Redis应用-1.png]]

  • 作为计数器使用
    Redis的String可以作为一个原子增量使用,如下:

![[Redis应用.png]]

提供incr命令以原子方式将存储在给定键中的计数器增加 1。INCRBY 原子递增(并在传递负数时递减)存储在给定键处的计数器。

JSON

Redis 开源版的 JSON 功能为 Redis 提供了 JavaScript Object Notation (JSON) 支持。它允许您在 Redis 数据库中存储、更新和检索 JSON 值,就像处理任何其他 Redis 数据类型一样。

没什么示例应用,跳过。

Lists

Redis 列表是字符串值的链表。Redis 列表经常用于:

  • 实现栈和队列
    LPUSH 将一个新元素添加到列表头部; RPUSH 添加到列表尾部。
    LPOP 从列表头部移除并返回一个元素; RPOP 执行相同操作,但移除的是列表尾部元素。
    LLEN 返回列表的长度。
    LMOVE 原子性地将元素从一个列表移动到另一个列表。
    LRANGE 从列表中提取一个元素范围。
    LTRIM 将列表缩减为指定的元素范围。
    列表还支持多个阻塞命令:
    BLPOP 从列表头部移除并返回一个元素。如果列表为空,该命令会阻塞,直到有元素可用或直到指定的超时时间到达。
    BLMOVE 原子地将元素从源列表移动到目标列表。如果源列表为空,该命令会阻塞,直到有新元素可用。
    ![[Redis应用-2.png]]

  • 构建后台工作系统的队列管理
    比如在生产者——消费者模式中,其中生产者将项目推入列表,消费者(通常是工作进程)消费这些项目并执行操作。
    例子: Twitter 社交网络将用户发布的最新推文存入 Redis 列表中。

  • 作为限制列表
    在许多使用场景中,我们只想用列表来存储最新的项目,无论它们是什么:社交网络更新、日志或其他任何内容。
    Redis 允许我们使用列表作为一个有上限的集合,只记住最新的 N 个项目,并使用 LTRIM 命令丢弃所有最旧的项目。
    LTRIM 命令与 LRANGE 命令类似,但它不是显示指定的元素范围,而是将这个范围设置为新的列表值。给定范围之外的元素都会被移除。
    例如,如果你正在将自行车添加到维修列表的末尾,但只想关注列表中最长的 3 个项目:
    ![[Redis应用-3.png]]

Sets

是一个无序的唯一字符串(成员)的集合。
SADD 向集合中添加一个新成员。
SREM 从集合中移除指定的成员。
SISMEMBER 测试一个字符串是否属于集合。
SINTER 返回两个或多个集合共有的成员集合(即交集)。
SCARD 返回集合的大小(也称为基数)。

常用于:

  • 跟踪唯一项(例如,跟踪访问特定博客文章的所有唯一 IP 地址)
  • 表示关系(例如,具有给定角色的所有用户的集合)
  • 执行交集、并集和差集等常见集合操作

比如存储比赛的自行车集合。
登记操作:
![[Redis应用-4.png]]

检查操作,bike:2 只存在于bikes:racing:france

![[Redis应用-5.png]]

bike:1 两个集合都存在。SINTER命令查看交集。

Hashes

Redis 哈希是记录类型,结构为字段-值对的集合。你可以使用哈希来表示基本对象,以及存储计数器分组等。
每个哈希可以存储高达 4,294,967,295 (2^32 - 1) 个字段-值对。在实际应用中,你的哈希受限于承载 Redis 部署的虚拟机的总内存。

Sorted Sets

有序集合是一个由唯一字符串(成员)组成的集合,这些成员按关联的分数排序。当多个字符串具有相同的分数时,这些字符串会按字典序排序。
常用于以下场景:

  • 排行榜
    可以使用 sorted sets 轻松维护大型在线游戏中最高分数的有序列表。
# 添加/更新玩家得分
ZADD game:xyz:leaderboard 1500 "player1"
ZADD game:xyz:leaderboard 2200 "player2"
ZADD game:xyz:leaderboard 1800 "player3"# "player1" 得分增加 300
ZINCRBY game:xyz:leaderboard 300 "player1" # player1 score becomes 1800# 获取得分最高的 Top 3 玩家 (降序)
ZREVRANGE game:xyz:leaderboard 0 2 WITHSCORES# 获取 "player2" 的排名 (0-based, 降序)
ZREVRANK game:xyz:leaderboard "player2"
  • 速率限制器
    可以使用一个 sorted set 来构建滑动窗口速率限制器,以防止过多的 API 请求。

Bitmaps

本质上是字符串,但可以对字符串的任意位进行操作(0或1)。非常节省空间,适合大规模布尔型数据。由于字符串是二进制安全的字节数组,且其最大长度为 512 MB,因此它们适合设置多达 2^32 个不同的位。
核心操作: SETBIT, GETBIT, BITCOUNT, BITPOS, BITOP (AND, OR, XOR, NOT)

  • 签到与统计
# 用户ID为1000的用户在某天签到 (假设1000是bit的偏移量)
# key: daily_checkin:2023-10-27
SETBIT daily_checkin:2023-10-27 1000 1
SETBIT daily_checkin:2023-10-27 1005 1# 检查用户ID为1000是否签到
GETBIT daily_checkin:2023-10-27 1000# 统计当天签到总人数
BITCOUNT daily_checkin:2023-10-27# 统计连续3天都签到的用户 (需要BITOP AND)
# SETBIT daily_checkin:2023-10-26 1000 1
# SETBIT daily_checkin:2023-10-25 1000 1
# BITOP AND连续3天签到 daily_checkin:2023-10-27 daily_checkin:2023-10-26 daily_checkin:2023-10-25
# BITCOUNT 连续3天签到

等等……
基本上都是从数据结构的特性出发做应用。这里放一个官网地址https://redis.io/docs/latest/develop/data-types/

常见Redis应用

缓存

在微服务架构中,我们往往需要一个线程安全的共享存储来作为缓存使用。目的是提升性能与降低数据源压力。
在权衡内存后,一些热点数据、读多写少的数据都可以使用缓存来提升性能。
作为缓存时,其按照命中与使用情况常常有3类问题:
![[Redis应用P1-Redis的自我介绍-3.png]]

  • 缓存穿透
    缓存未命中,请求到数据源。
    缓存穿透主要是需要防范不正常请求,如数据库一般肯定没有的user:id -999。
    需要在应用层对查询数据做过滤限制,或者为无效请求缓存一个短期结果。

  • 缓存击穿
    缓存未命中,请求到数据源。但是请求是有效的。
    一般发生在热点数据上。需要给热点数据续时间或者设置永不过期。
    或者给热点数据的数据源请求加互斥操作。只要能实现给数据源降压的效果都行。

  • 缓存雪崩
    雪崩意味着同一时间大量问题。在缓存这里就是同一时间缓存都失效。
    应对方法有给缓存设置不同的随机失效时间。热点数据不过期、讲热点数据分散在不同缓存数据库等。

分布式锁

Redis本省是线程安全的+String有nx操作。所以Redis String很适合用来作为分布式锁。

http://www.dtcms.com/wzjs/406431.html

相关文章:

  • 哈尔滨做网站哈尔滨学院网络营销是学什么的
  • 美女做羞羞事全过程网站百度网址提交
  • 做推广网站多少钱seo教程自学
  • 网站建设需求规格说明书四川seo哪里有
  • 做健身网站学生个人网页优秀模板
  • 怎么维护网站怎么自己弄一个平台
  • 免费下载建设银行官方网站下载新手销售怎么和客户交流
  • 做外贸怎么网站找客户企业邮箱注册申请
  • 长沙建站智找有为太极win7优化极致性能
  • 百度网站客服电话网络营销推广主要做什么
  • 外贸响应式网站建设百度pc端网页版
  • 淮南网站推广网站查询seo
  • 推广普通话的宣传内容win7最好的优化软件
  • 图片网站 seo网店代运营骗局流程
  • 用易语言做网站如何网址模板建站
  • 网站开发 工具整站优化关键词排名
  • 网站建设与制作好学吗上海网站seo优化
  • wordpress仿小米主题惠州短视频seo
  • 做瞹视频网站数据分析网
  • 做网站要什么专业怎么做
  • 0基础做网站工具什么平台打广告比较好免费的
  • 网站添加外链南京谷歌seo
  • 做亚马逊联盟一定要有网站吗百度指数查询官网入口登录
  • 如何提升网站知名度百度免费网站制作
  • 李氏牛仔网站建设风格引流人脉推广软件
  • 网站建设特点营销最好的方法
  • 网站底部背景手机网站百度关键词排名查询
  • 网站开发就业外部威胁长尾关键词
  • 公司网站建设哪里实惠广州seo代理
  • 成都高端网站建设公司哪家好互动网站建设