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

wordpress添加友链windows优化大师在哪里

wordpress添加友链,windows优化大师在哪里,网站登陆界面psd,邯郸哪儿做网站好欢迎来到啾啾的博客🐱。 记录学习点滴。分享工作思考和实用技巧,偶尔也分享一些杂谈💬。 有很多很多不足的地方,欢迎评论交流,感谢您的阅读和评论😄。 目录 引言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/179286.html

相关文章:

  • 微博营销平台济源新站seo关键词排名推广
  • wordpress的sitemapseo助力网站转化率提升
  • 湖南交通建设监理协会网站百度识图网页入口
  • 如何做网站嵌入腾讯地图西安快速排名优化
  • 直播网站怎么做啊开个网站平台要多少钱
  • 在线建网址重庆二级站seo整站优化排名
  • 高清的网站建设seo网络营销外包公司
  • 网站ppt缩略图sem对seo的影响有哪些
  • 网站单页设计seo站长
  • 外贸推广平台有哪些优化大师app
  • 如何做一间公司的网站网站制作流程和方法
  • 深圳专业的网站制作公司个人网站seo入门
  • 做视频用的网站有哪些合肥网络seo
  • 网站开发成本会计分录软文内容
  • 谷歌seo外链某网站seo诊断分析和优化方案
  • 一个网站要怎么做的吗微信引流推广
  • wordpress页面table唐山网站建设方案优化
  • 跨境电商就是忽悠人的周口网站seo
  • 慈溪怎么做网站百度搜索推广流程
  • 想自己做网站需要会什么下载优化大师
  • 营销手机网站版面优化大师下载
  • 广州专业网站建设公司长沙seo优化推广公司
  • 库尔勒网站建设哪家好网络推广需要多少钱
  • wordpress office插件开发seo优化范畴
  • 金坛网站开发网站开发的步骤
  • 滨州做网站的电话网络营销方法有几种类型
  • 做静态网站有什么建议360推广登录入口官网
  • 网站建设武汉公司培训机构不退费最有效方式
  • 网站开发项目具体的流程seo技术 快速网站排名
  • 网站建设项目招标公告郑州seo培训