做网站编辑的感受,后台登陆wordpress,岳阳房产信息网,本地建站discuz目录 前言
一、scan 命令
二、数据库管理命令
select
dbsize
flushdb / flushall 前言 之前我们所了解到的 keys * 是一次性把整个 redis 中所有的 key 都获取到#xff0c;但是整个操作比较危险#xff0c;可能会一下子的都太多的 key#xff0c;阻塞 redis 服务器. …目录 前言
一、scan 命令
二、数据库管理命令
select
dbsize
flushdb / flushall 前言 之前我们所了解到的 keys * 是一次性把整个 redis 中所有的 key 都获取到但是整个操作比较危险可能会一下子的都太多的 key阻塞 redis 服务器.
通过渐进式遍历就可以做到既能获取所有的 key 同时又不会卡死服务器~
渐进式遍历不是一个命令就把所有 key 都拿到而是每执行一次命令只获取其中的一小部分这样就保证了当前这一次操作不会太卡~ 一、scan 命令 scan 就是渐进式遍历的代表命令.
SCAN cursor [MATCH pattern] [COUNT count] [TYPE type]cursor此处设计到一个光标的概念光标就指向了当前遍历的位置起初光标位置为 0每次遍历都会产生一个光标位置下次使用 scan 遍历时就需要接着上次光标产生的位置.
[MATCH pattern]这里和之前介绍的 keys 命令是一样的.
[COUNT count]限制一次遍历能过获取到多少元素注意这里的 count 只是给 redis 服务器的 “建议”写入的 count 和实际返回的 key 的个数不一定完全相同但是不会差很多.
[TYPE type]redis 里的 key 都是 string 但是 value 类型是不一样的. 假设目前有如下 keys 通过渐进式遍历就可以得到如下结果 Ps渐进式遍历在遍历的过程中不会在服务器这边存储任何的状态信息此处的遍历是随时可以终止的解决了阻塞问题。 但是值得注意的是如果在遍历期间键有所变化增加、修改、删 除可能导致遍历时键的重复遍历或者遗漏这点务必在实际开发中考虑。 二、数据库管理命令 在 mysql 上有个重要的概念——database可以进行随心所欲的 创建/删除 数据库~
redis 也有 database 这样的概念只不过不像 mysql 那样随意. redis 中的 database 是现成的咱们不能创建新的数据库也不能删除已有的数据库~
默认的 redis 给我们提供了 16 个数据库编号为 0 - 15这 16 个数据库之间的数据是隔离的默认情况下使用数据库就是 0 号. Ps实际使用 redis 很少会关注数据库一般都是使用 0 号就可以了. select
select dbIndex
使用这个命令就可以进行数据库的切换 dbsize
获取当前数据库中的 key 的个数. flushdb / flushall
flushdb 用来删除当前数据库中所有的 key.
flushall 用来删除所有数据库中的 key. Ps永远不要在线上环境执⾏清除数据的操作除⾮你想体验⼀把 “从删库到跑路” 的操作