Mysql和Redis笔记(不断更新......)

Mysql

in、on、exist

- 使用 ON 的例子(表连接):
假设有两个表 学生 和 课程,它们分别包含学生信息和课程信息。我们可以使用 INNER JOIN 来连接这两个表,通过学生ID关联它们。

SELECT 学生.姓名, 课程.课程名
FROM 学生
INNER JOIN 选课 ON 学生.学生ID = 选课.学生ID
INNER JOIN 课程 ON 选课.课程ID = 课程.课程ID;

在这个例子中,ON 子句用于指定两个表之间的连接条件。
- 使用 IN 的例子:
假设有一个表 成绩,我们想要查询所有得到 A 等级的学生。

SELECT 姓名
FROM 学生
WHERE 学生ID IN (SELECT 学生ID FROM 成绩 WHERE 成绩 = 'A');

在这个例子中,IN 子句用于过滤符合条件的学生ID。

  • 使用 EXISTS 的例子: 检测行的存在
    假设我们想要查询至少选修了一门课程的学生。
SELECT 姓名
FROM 学生
WHERE EXISTS (SELECT 1 FROM 选课 WHERE 学生.学生ID = 选课.学生ID);

在这个例子中,EXISTS 子句用于检查是否存在符合条件的子查询结果,如果存在,就返回相应的学生记录。

Redis

基本操作

登录Redis
redis-cli -h redis-cnlfcw3rnt989pn1a.redis.ivolces.com -p 6379
检查连通性
ping
切换到指定数据库
select index
获取服务器信息
info
keys指令
# 查找所有以 "user" 开头的键
KEYS user*# 查找所有以 "user" 结尾的键
KEYS *user# 查找所有包含 "account" 的键
KEYS *account*# 查找所有以 "user" 开头且后面只有一个字符的键
KEYS user?# 查找所有以 "user" 开头,接着是一个数字的键
KEYS user[0-9]
  • KEYS 命令是阻塞的,执行时可能会导致性能问题,尤其是在大规模键空间的情况下。在生产环境中,可以考虑使用更高效的命令,如 SCAN。

  • 在 Redis 4.0 之后,SCAN 命令被引入,它提供了一种更安全和高效的方式来遍历键空间。使用 SCAN 可以避免 KEYS命令可能导致的阻塞和性能问题。

# 示例:使用 SCAN 替代 KEYS
SCAN 0 MATCH user*

问题:假如 Redis 里面有 1 亿个 key,其中有 10w 个 key 是以某个固定的已知的前缀开头的,如果将
它们全部找出来? 如果这个 redis 正在给线上的业务提供服务,那使用 keys 指令会有什么问题?
答:①使用 keys 指令可以扫出指定模式的 key 列表。
redis 的单线程的。keys 指令会 导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕,服务才能恢 复。这个时候可以使用 scan 指令,scan 指令可以无阻塞的提取出指定模式的key 列表,但是会有一定的重复概率,在客户端做一次去重就可以了,但是整体所花费的时间会比直接用 keys 指令长。

键操作

设置指定key的值
set key value
获取指定 key 的值
get key
检查 key 是否存在
exists key
获取 key 的剩余过期时间
ttl key

字符串操作

在指定 key 的值末尾追加字符串
append key value
获取指定 key 的字符串长度
strlen key

1、展示如何在一个事务中执行两个 SET 指令:

MULTI               # 开始事务
SET mykey value1    # 执行第一个 SET 操作
SET mykey2 value2   # 执行第二个 SET 操作
EXEC                # 提交事务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/705599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot接收前端传递参数

1)URL参数 参数直接 拼接在URL的后面,使用 ? 进行分隔,多个参数之间用 & 符号分隔。例如:http://localhost:8080/user?namezhangsan&id1后端接收(在Controller方法的参数列表中使用 RequestParam 注解&…

编程笔记 html5cssjs 088 JavaScript 数组

编程笔记 html5&css&js 088 JavaScript 数组 一、定义和创建数组二、访问数组元素三、数组属性与方法四、迭代和遍历数组五、数组的特性六、数组方法和迭代器(如keys(), values(), entries())七、数组的用途总结 JavaScript数组是一种特殊的数据…

flashback to timestamp 耗时

flashback pluggable database XX to timestamp to_date(2024-02-26 13:11:56,yyyy-mm-dd hh24:mi:ss); 1TB 花费2小时,如果做了还原点好像很快 select trunc( a.FIRST_TIME,HH24),count(*) from v$flashback_database_logfile a group by trunc( a.FIRST_TIME,…

ADC制剂生产过程中的微粒控制-隧道烘箱在线粒子监测系统 中邦兴业

ADC制剂生产过程中的污染和交叉污染控制需要从多个方面入手,包括生产环境、设备、原辅料、生产过程、人员卫生和培训以及微生物监控等。只有全面、有效地实施这些控制措施,才能确保ADC制剂的质量和安全性。 ADC制剂生产过程中的微粒控制 ADC制剂生产中的…

StarRocks之监控管理(内含DashBoard模板)

先看下最终效果图 架构 Prometheus 是一个拥有多维度数据模型的、灵活的查询语句的时序数据库。它可以通过 Pull 或 Push 采集被监控系统的监控项,存入自身的时序数据库中。并且通过丰富的多维数据查询语言,满足用户的不同需求。 Grafana 是一个开源的 Metric 分析及可视化系…

Java 面试题基础(二)

Java 面试题基础(二) 前言1、抽象方法能否是静态的(static)?2、阐述静态变量和实例(普通)变量的区别?3、静态方法内部可以调用普通方法吗?4、如何实现对象克隆&#xff1…

SVG是什么

SVG,全称Scalable Vector Graphics,指的是可缩放矢量图形。它是一种基于XML的二维矢量图形标准,由万维网联盟(World Wide Web Consortium,W3C)开发。SVG使用XML格式来定义图形,这意味着除了IE8之…

右值引用的意义 以及 move函数,forward完美转发

文章目录 右值引用的意义move 函数forward 完美转发 右值引用的意义 直观意义: 为临时变量续命,也就是为右值续命,因为右值在表达式结束后就消亡了,如果想继续使用右值,那就会动用昂贵的拷贝构造函数。(关…

k8s 进阶实战笔记 | NFS 动态存储类的部署与使用

文章目录 NFS 动态存储类的部署与使用演示环境说明NFS subdir external provisioner准备 NFS 服务器手动部署 NFS Subdir External Provisioner部署 StorageClass验证使用更多信息 NFS 动态存储类的部署与使用 演示环境说明 演示环境信息:单机K3s 1.28.2 操作系统…

配置用户通过IPv6方式上网

组网需求 运营商为企业分配了WAN侧的IPv6地址1111:2222:A0EE:6::2/64和LAN侧的IPv6地址1111:3333:E840:2::1/64,企业通过运营商提供的IPv6地址配置上网。 图1 配置用户通过IPv6方式上网 操作步骤 1、在IPS上的配置 interface GigabitEthernet0/0/4 ipv6 enable…

代码随想录Leetcode377. 组合总和 Ⅳ

题目&#xff1a; 代码(首刷看解析 2024年2月27日&#xff09;&#xff1a; class Solution { public:// 思路&#xff1a;动态规划int combinationSum4(vector<int>& nums, int target) {// 1条件判断:无// 2定义dp 初始化 总和为target的数量vector<int> dp…

单节点大数据平台运维脚本

单节点的大数据集群运维脚本 vi /opt/bash/bigdata-operate-script.sh#!/bin/bashsource ~/.bashrc source /etc/profilehostnamebigdata#程序运行必要组件 important_components("kafka" "clickhouse-server" "elasticsearch" "kibana&qu…

.NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】

设计模式是软件工程中常用的解决特定问题的通用设计方法。它们提供了经过验证的解决方案&#xff0c;可用于解决在软件开发过程中经常遇到的一些常见问题。设计模式不是一种具体的编程语言特性或语法&#xff0c;而是一种通用的设计思想或模板&#xff0c;可以帮助开发人员设计…

【数电符号】9 Selectable Functions

1 AND 与门 2 OR 或门 3 NOT(Inverted) 非门 4 NAND 与非门 5 NOR 或非门 6 NANDOR 与或非门 … 7 XNOR 同或门 相同为1&#xff0c;不同为0 8 XOR 异或门 不同为1&#xff0c;相同为0 9 Buffer 缓冲器 也有不带施密特触发器的 //-----------Example---------------------…

基于springboot+vue的抗疫物资管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

c++数据结构算法复习基础--1

一、大体复习内容 复习思路&#xff1b; 二、数据结构算法-常见复杂度汇总介绍-性能对比-图表展示 数据结构: 相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构&#xff0c;散列结构、树形结构&#xff0c;图形结构等等。 数据结构说的是组织…

ZCC5429 异步升压芯片

一、产品综述 ZCC5429 芯片是一款自动调频、最高 600KHz 工作频率、高效率、宽输入电压范围的电流模式异步升压&#xff08;BOOST&#xff09;芯片&#xff0c;且可调输入限流功能。用户可灵活地通过外部补偿建立动态环路&#xff0c;获得在所有条件下最优瞬态性能。 ZCC5429…

kubectl使用及源码阅读

目录 概述实践样例yaml 中的必须字段 kubectl 代码原理kubectl 命令行设置pprof 抓取火焰图kubectl 中的 cobra 七大分组命令kubectl createcreateCmd中的builder模式createCmd中的visitor访问者模式外层VisitorFunc分析 结束 概述 k8s 版本 v1.24.16 kubectl的职责 1.主要的…

vue基础概念(1)

1. 前言 此项目基于vue2开发 1.1. vue组件 1.2. 文本插值表达式 用于返回data方法中的对象属性 也可以用于数据判断例如{{age >xx ? 老年 &#xff1a;青年}} 1.3. 属性绑定 v-bind :xxx 一般用于input输入框等 1.4. 事件绑定 v-on 1.5. 双向绑定 v-model 表单输入项…

vscode映射数据库表成实体类,自动生成相关连接应用及配置

VsCode--------------------------------------注意下面这个命令不能换行&#xff0c;我这换行只是为了方便看 dotnet ef dbcontext scaffold "server.\SQL2016;databaseCERTMSDb;uidsa;pwdsvse;TrustServerCertificatetrue" Microsoft.EntityFrameworkCore.SqlServe…