【redis】全局命令set、get、keys

生产环境

未来在工作中会涉及到的几个环境:

  1. 办公环境(入职后,公司给你发个电脑)
  2. 开发环境
    • 有的时候,开发环境和办公环境是一个(一般做前端和做客户端)
    • 有的时候,开发环境是一个单独的服务器(一般做后端)
      1. 编译一次时间特别久,使用高性能的服务器,进行编译
      2. 有的程序一启动要消耗很多的 CPU 和内存资源,办公电脑难以支撑
      3. 有的程序比较依赖 Linux,在其他环境下搭不起来
  3. 测试环境(测试工程师使用)
  4. 线上环境/生产环境
    • 上面三个环境统称"线下环境",外界用户无法访问到的
    • 线上环境则是外界用户可以访问到的
    • 一旦生产环境上出现问题,一定会对用户的使用产生影响,就会直接影响到公司营收

Redis 文档

通过 redis-cli 客户端和 redis 服务器交互,涉及到很多redis 命令(非常非常多)

  1. 掌握常用命令(多操作练习)
  2. 学会使用 Redis 的文档

最核心的两个命令 get 和 set

Redis 是按照键值对的方式存储数据的

  • get:根据 key 来取 value
  • set:把 keyvalue 存储进去

若想输入 Redis 命令,就先要进入 Redis 客户端

使用方法

redis 复制代码
set key value

keyvalue 都必须是字符串(写数字也行,会把你的数字看成字符串)

  • redis 中的命令不区分大小写

redis 复制代码
get key
  • get 直接输入 key 就能得到 value
  • 如果当前 key 不存在,就会返回 nil(和 null/NULL 是一个意思)

全局命令

定义

Redis 支持很多种数据结构。整体上来说,Redis 是键值对结构key 固定就是字符串,value 实际上会有多种类型

  • 字符串
  • 哈希表
  • 列表
  • 集合
  • 有序集合
    操作上面不同的数据结构,就会有不同的命令。

而全局命令,就是可以搭配任意一个数据结构来使用的命令

keys------查询 key

用来查询当前服务器上匹配的 key

通过一些特殊符号(通配符)来描述 key 的模样,匹配上述模样的 key 就能被查询出来

  • 就是帮助我们看一下,当前 Redis 上面有哪些 key

语法:

redis 复制代码
keys pattern
  • pattern: 包含特殊符号的字符串。有的地方翻译成"样式"或者"模式"。存在的意义,是去描述另外的字符串长啥样的

pattern

比如,你找女朋友的要求是:

  • 肤白
  • 貌美
  • 大长腿
    那这些条件就是 pattern。又饿了这些条件之后,你就在你的追求者中进行遍历,看哪些符合这些条件,选出她们
  • ?:匹配任意一个 字符,hellohollohxllo...
  • *:匹配任意个 字符,heeeeelohllo...
  • [ae]:匹配指定 字符,hallohello
  • [^e]:匹配除了指定字符 的,hallohgllo...
  • [a-b]:匹配 a-b 这个范围的,hallohbllo

注意事项:
keys 命令的时间复杂度是 O ( N ) O(N) O(N),所以,在生产环境上,一般都会禁止 使用 keys 命令,尤其是大杀器 keys *

  • 生产环境上的 key 可能会非常多,而我们的 Redis 是一个单线程服务器
  • 就可能导致执行 key * 实际爱你非常长,就使 Redis 服务器被阻塞了,无法给其他客户端提供服务
    这样的后果可能是灾难性的
  • Redis 经常被用于做缓存 ,挡在 MySQL 面前,替 MySQL 负重前行。万一 Redis 被一个 keys * 阻塞住了,此时其他的查询 Redis 操作就超时了,此时这些请求就会直接查询数据库,突然一大波请求过来了,MySQL 措手不及,就容易挂~
  • 整个系统就基本瘫痪了。
  • 如果你要是没有及时发现,及时恢复的话,年终奖妥妥就没了,更有甚者工作就没了
相关推荐
MeAT ITEM2 分钟前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
dovens6 分钟前
PostgreSQL 中进行数据导入和导出
大数据·数据库·postgresql
IOT.FIVE.NO.16 分钟前
claude code desktop cowork报错解决和记录Workspace..The isolated Linux environment ...
linux·服务器·数据库
Rick199315 分钟前
mysql 慢查询怎么快速定位
android·数据库·mysql
科技小花7 小时前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
X56618 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
虹科网络安全10 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
2301_7717172110 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
小江的记录本10 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi10 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql