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

西安网站开发外包中国的网络营销公司

西安网站开发外包,中国的网络营销公司,泰安市建设职工培训中心网站进不去,手机网站微信登录接口目录 引言 渐进式遍历 SCAN 命令 数据库管理命令 切换数据库 获取数据库 key 个数 删除数据库所有 key 同步删除 SYNC 异步删除 ASYNC 阅读下述文章之前建议点击下方链接熟悉 keys 命令的用法和特点 Redis 全局通用命令 ​​​渐进式遍历 keys * 命令一次性将 Redi…

目录

引言

渐进式遍历 

SCAN 命令

 数据库管理命令

切换数据库

获取数据库 key 个数 

删除数据库所有 key

同步删除 SYNC

异步删除 ASYNC


阅读下述文章之前建议点击下方链接熟悉 keys 命令的用法和特点

Redis 全局通用命令


​​​渐进式遍历 

  • keys * 命令
  • 一次性将 Redis 中所有的 key 都获取到

注意:

  • 执行该命令 十分危险,可能会导致一下子得到太多 key,从而阻塞 Redis 服务器

  • 相较于 keys * 命令
  • 渐进式遍历,可以做到获取到所有的 key 的同时又不会阻塞 服务器

通俗理解:

  • 不是通过一个命令,便将所有的 key 都获取到
  • 而是每执行一次命令,便获取到其中的一小部分 key,以此保证当前这次操作不会阻塞 Redis 服务器
  • 要想得到所有的 key ,仅多执行几次渐进式遍历命令来遍历 Redis 中的 key 即可
  • 类似于 化整为零 的思想

SCAN 命令

  • 渐进式遍历的代表命令

语法:

scan cursor [MATCH pattern] [COUNT count] [TYPE type]
  • cursor 代表光标,而 光标便指向了当前遍历的位置

注意:

  • 此处的 cursor 不能理解成 下标
  • cursor 并不是一个连续递增的整数,仅仅只是一个字符串
  • 程序员 和 Redis 客户端是不认识光标(cursor)这个概念的
  • 只有 Redis 服务器知道光标(cursor)值 所对应的元素位置
  • 我们要做的只能是将返回的光标(cursor)值写入到下次遍历的 scan 命令中,从而获取下次需遍历到的 key

可选项解释

  • [MATCH pattern] 和前面介绍过的 keys 命令中的 pattern 是一样的 
  • pattern 为包含特殊符号的字符串,其存在的意义是去描述 另外的字符串长啥样的
? 匹配任意一个字符
匹配 0 个或者多个任意字符
[ab] 只能匹配到 a b ,别的都不行 相当于给出固定的选项
[^ae] 只有 a、e 匹配不了 其他的都能匹配
[a-e] 匹配 a - e 这个范围内的字符 包含两侧边界

  • [COUNT count] 用来限制这一次遍历能获取到的元素个数,默认为 10 个

注意:

  • 此处的 count 与 MySQL 中的 limit 不同
  • 首先此处的 count 值只能对 Redis 服务器起到一个 "提示" 或 "建议" 的效果,并不代表 Redis 服务器只能返回 count 个 key
  • 即填写的 count 值 和 实际返回的 key 的个数不一定完全相同,但是也不会差很多!
  • 但对于 MySQL 中的 limit 来说,其给出的值是多少,则该 sql 语句便十分精确地返回多少行数据

  • Redis 中的 key 均为 String 类型,但是 value 却有很多种不同的类型
  • [TYPE type] 可利用该选项来控制返回 key 的 value 类型

实例理解

  • 限制一次遍历仅能获取 3个元素


注意点一:

  • 渐进式遍历,在遍历过程中,Redis 服务器不保留任何状态信息
  • 所以此处的遍历 是可以随时进行终止的,因为其不会对 Redis 服务器产生任何影响

注意点二:

  • 渐进式遍历 虽然解决了阻塞的问题
  • 但如果在遍历期间 key 有所变化(增加、修改、删除),这均可能导致遍历时 key 的重复遍历或者遗漏
  • 这点务必在实际开发中考虑!

 数据库管理命令

  • MySQL 中有一个重要的概念 ——> database(数据库)
  • 一个 MySQL 服务器上可以有很多个 database,一个 database 上可以有很多个 table
  • MySQL 上可以随心所欲的 创建、删除 database 和 table

  • Redis 中也有 database 的概念,只不过不像 MySQL 那样随意
  • Redis 中的 database 均是现成的,即用户不能创建新的数据库,也不能删除已有的数据库
  • Redis 默认给我们提供了 16 个数据库,编号为 0-15
  • 这 16 个数据库之间具有隔离性,即这些数据库不会相互影响
  • 默认情况下使用的数据库就是 0号数据库

切换数据库

  • 使用下方命令来切换数据库
select dbIndex

注意:

  • 在实际 Redis 的使用中很少会关注到数据库,一般都是默认使用 0号数据库

实例理解


获取数据库 key 个数 

  • 使用下方命令来获取到当前数据库中 key 的个数
dbsize

实例理解


删除数据库所有 key

  • 使用下方命令来删除 当前数据库 或 全部数据库 的所有 key
FLUSHDB [ASYNC | SYNC] 删除当前数据库中的所有 keyFLUSHALL [ASYNC | SYNC] 删除全部数据库中的所有 key
  • 选项 [ASYNC | SYNC] 为 [异步 | 同步] 的意思

同步删除 SYNC

  • Redis 会在删除数据前,先将数据同步到磁盘上的持久化文件(如 RDB文件)
  • 这意味着在命令执行完成后,你可以确保数据已经被持久化到磁盘上
  • 即使 Redis 服务在之后重启,也能够从磁盘上的数据文件中恢复数据

优点:

  • 数据持久性高

缺点:

  • 会引起一定的性能开销,因为要等待数据写入磁盘

异步删除 ASYNC

  • Redis 会在后台异步删除数据,而不等待数据同步到磁盘上
  • 这意味着在命令执行完成后,数据可能还没有被持久化到磁盘上
  • 这样的操作通常会更快,因为不需要等待磁盘写入的完成

优点:

  • 性能开销小

缺点:

  • 在极端情况下,如果 Redis 在执行异步删除后崩溃,可能会丢失最后一次清空的数据

总结:

  • 异步删除主要关注于提高执行 FLUSHDB 命令的执行速度,即不会引入等待磁盘写入的性能开销
  • 它不会立即将所有数据写入磁盘,而是通过异步的方式在后台完成这个过程
  • 这也是为什么在异步删除的情况下,可以更快地执行清空数据库的操作

实例理解

  • 使用 FLUSHDB 命令

  • 使用 FLUSHALL 命令

http://www.yidumall.com/news/33042.html

相关文章:

  • 上海网站建设专业公司排名免费crm
  • 重庆的网站建设公司应用商店aso优化
  • 湘潭网站建站公司优化设计答案六年级
  • 易语言可以做网站嘛网页优化包括什么
  • 厦门市建设局查询保障摇号网站首页新闻发布平台有哪些
  • 重庆公司直招站长工具seo综合查询网
  • 所有娱乐场网址平台安卓优化大师旧版本下载
  • 河北雄安建设投资集团网站百度网站优化公司
  • 网站建设咨询公线下推广宣传方式有哪些
  • 全屏展示网站图片如何做自适应餐饮店如何引流与推广
  • 加强主流网站集群传播能力建设个人网站模板
  • 天津网上办事seo如何优化关键词
  • webstation做网站武汉建站公司
  • 做外贸网站的价格域名seo站长工具
  • 上海网站开发方案打开浏览器直接进入网站
  • 企业网站系统设计与实现唐山公司做网站
  • 某企业网站的设计与实现抖音推广
  • 建设银行网站怎么先无贷款呢seo资讯
  • 起点数据网是谁做的网站五年级下册数学优化设计答案
  • 怎么建设商品网站谷歌排名
  • 中国建设部网站安全b证查询产品推广图片
  • 如何低成本做网站推广成都网站建设技术支持
  • 手机网站排名优化百度投诉中心24人工 客服电话
  • 点击一个网站跳转到图片怎么做优化网站排名解析推广
  • 武胜县赛马镇建设小学学校网站长春网站建设团队
  • 做没用的网站做竞价推广大概多少钱
  • 公司网址备案能用多少网站提高工作效率
  • 如何在网站上做自动弹出企业网站源码
  • 建设网站专业旺道seo工具
  • 网站关键词下降广州优化公司哪家好