redis非关系型数据库(缓存型数据库)——中间件
【重点】redis为什么这么快?(应届)
①redis是纯内存结构,避免磁盘I/O的耗时
②redis核心模块是一个单进程,减少线程切换和回收线程资源时间
③redis采用的是I/O的多路复用机制(每一个执行线路可以同时完成读、写),提升高并发效率(注:redis的读写仍然是单进程处理)
1、redis的服务控制命令
/etc/init.d/redis_6379 restart stop start status

2、redis的命令工具
redis-server:直接启动redis,只能启动
redis-benchmark:检测redis在本机的运行效果
redis-cli:命令行工具
redis-check-aof:检测AOF文件是否正常
redis-check-rdb:检测RDB文件是否正常
3、redis-benchmark语法
-h指定服务器的主机名(IP地址)
-p指定服务器的端口号6379
-c指定并发连接数
-n指定请求数
-a指定登录密码


4、登录redis
①方法1:redis-cli -h 20.0.0.14 -p 6379远程登录本机或别的服务器
②方法2:redis-cli直接使用,仅限于本地,远程登录仍需要指定目标服务器的IP地址


| redis整个库 | |
| 查看当前库中的键的数量 | DBSIZE |
| 切换库 | SELECT 2 |
| 移动键值到指定库15 | move guoqi1 15 |
| 设置密码 | config set requirepass 123456 |
| 在外声明密码 | redis-cli -h 20.0.0.14 -p 6379 -a 123456 |
| 在内声明密码 | auth 123456 |
①查看当前库中的键的数量DBSIZE

redis默认有16个库,第一个是0,最后一个是15,每个数据库之间互相独立、互不干扰
②切换库SELECT 2

③移动键值到指定库15
move guoqi1 15

④设置密码config set requirepass 123456

在内声明密码auth 123456

在外声明密码redis-cli -h 20.0.0.14 -p 6379 -a 123456


⑤删除当前库FLUSHDB(删库跑路!坐牢)

⑥删除所有库FLUSHALL(删库跑路!坐牢)

5、redis五大数据类型【重点】
1)string字符串类型——string
默认类型,最大存储512MB的数据,可以存储任何数据,比如数字、文字、图片等
| string字符串类型 | |
| 查看当前库的键值对 | KEYS * KEYS test KEYS t* KEYS t? KEYS t?? |
| 创建string类型的键值对 | set test guoqi |
| 查看键值对 | get test |
| 判断键是否存在(返回1代表存在;返回0代表不存在) | EXISTS test |
| 删除键 | del test1 test2 |
| 查看键的类型 | type test |
| 追加键值 | append test1 hello |
| 查看键的长度 | STRLEN test1 |
| 自增键值 自减键值 | INCR test1 decr test1 |
| 给键值增加/减少指定数值 | DECRBY test1 3 INCRBY test1 50 |
| 给键值设置过期时间 | SETEX test2 15 lo |
| 对已有键值对修改生命周期 | EXPIRE test 30 |
| 批量设置键值对 | MSET key1 hello key2 world |
| 批量打印多个键值对 | MGET key1 key2 |
| 对键重命名 | RENAME test guoqi |
①查看当前库的键值对KEYS test

②创建键值对set test guoqi
③查看键值对get test



④判断键值对test是否存在EXISTS test

⑤删除键值对del test1 test2

⑥查看键值对的类型type test

⑦追加键值append test1 hello
键已存在,会追加到原有键值后,返回拼接后键值的长度
键不存在,会创建键,直接将键值写入,返回当前键值长度


⑧查看键值长度STRLEN test1

⑨自增键值INCR test1
自减键值 decr test1
注:只能对数字进行操作

⑩给键值增加/减少指定数值
DECRBY test1 3
INCRBY test1 50

⑪给键值设置过期时间 SETEX test2 15 lo

-2表示键值对已过期
-1表示键值对永不过期
⑫对已有键值对修改生命周期EXPIRE test 30

⑬批量设置键值对
MSET key1 hello key2 world
⑭打印多个键值对
duMGET key1 key2

⑮对键重命名RENAME test guoqi

2)list列表类型——string
列表中的元素是string类型
| list列表类型 | |
| 创建list类型的键值对 | lpush guoqi a b c d e f g |
| 查看键值对 | lrange guoqi 0 -1 |
| 查看某个键值对【下标索引】 | lindex guoqi1 0 |
| 查看1-2范围内的键值对 【下标索引,从0开始】 | lrange guoqi1 1 2 |
| 插入数值 | lpush guoqi1 10插入左侧 rpush guoqi1 20插入右侧 |
| 删除数值 | LPOP guoqi1 RPOP guoqi1 |
| 修改数值 | LSET guoqi1 3 shuai (根据下表索引,3代表下表索引) |
| 指定数值前插入 | LINSERT guoqi1 before 3 zhende (3代表数值,不是下表索引) |
①创建列表键值对
lpush guoqi a b c d e f g倒序
rpush guoqi a b c d e f g正序


②查看某个键值对lindex guoqi1 0
![]()
③查看1-2范围内的键值对lrange guoqi1 1 2

④插入数值
lpush guoqi1 10在左侧插入
rpush guoqi1 20在右侧插入

⑤删除数值
LPOP guoqi1
RPOP guoqi1

⑥修改数值
LSET guoqi1 3 shuai(根据下表索引,3代表下表索引)

⑦指定数值前插入LINSERT guoqi1 before 3 zhende(3代表数值,不是下表索引)

3)hash类型
hash类型用于存储对象,采用hash格式进行操作,占用磁盘空间少,一个hash类型可以存储4294967295个(42亿个)键值对
| hash类型 | |
| 创建hsah类型的键值对 | HSET guoqi2 tall yes(tall代表字段类型) |
| 查看键值对 | hget guoqi2 tall |
| 添加新字段 | hset guoqi2 tall yes |
| 删除字段 | hdel guoqi2 hansdon tall |
| 创建多个字段和数值 | hmset guoqi3 tall rich age 23 fcz yes |
| 查询字段 | hgetall guoqi3 |
| 直接查询字段及数值 | hkeys guoqi3 |
| 直接查询数值 | hvals guoqi3 |
| 删除键值对 | del guoqi3 |
①创建hsah类型的键值对
HSET guoqi2 tall yes
②添加新字段hset guoqi2 tall yes

③查看多个字段的内容hmget info name address iphone

④删除字段 hdel info iphone

⑤创建多个字段和数值hmset guoqi3 tall rich age 23 fcz yes

⑥查询字段及数值、直接查询字段、直接查询数值
hgetall guoqi3
hkeys guoqi3
hvals guoqi3

⑦删除键值对del guoqi3

4)set无序集合类型——string
元素类型也是string,元素是唯一的,不允许重复,多个集合类型可以进行并集、交集、差集进行运算
使用场景:set中的元素类型是唯一的,可以跟踪一些唯一性数据,例如访问微博的用户名,只要把对应名称写入redis,set自动保存唯一性,方便下次访问
| set无序集合类型 | |
| 创建set类型的键值对 | SADD myset a c |
| 查看成员 | SMEMBERS myset |
| 查看当前集合中的元素是否存在 | SISMEMBER myset a |
| 随机返回集合中的一个元素 | SRANDMEMBER myset |
| 随机移除 | SPOP myset |
| 指定移除 | SREM myset h k |
①创建set类型键值 SADD myset a c

②查看成员SMEMBERS myset

③查看当前集合中的元素是否存在SISMEMBER myset a

④随机返回集合中的一个元素SRANDMEMBER myset

⑤随机移除SPOP myset

⑥指定移除 SREM myset h k

5)zset有序集合类型——string
元素类型也是string,元素唯一,不能重复。每个元素都会关联一个double类型(小数点)的分数(score,表示权重),可以通过权重的大小进行排序,元素的权重可以相同
使用场景:在线积分的排行榜,实时更新用户的分数
zrange命令获取积分top10的用户,zrank命令通过username获取用户的排行信息
| zset有序集合类型 | |
| 创建zset类型的键值 | ZADD myzset 1 one |
| 查看元素和权重 | ZRANGE myzset 0 -1 withscores |
| 查看成员的权重 | ZSCORE myzset two |
| 查询成员数量 | ZCARD myzset |
| 统计权重在1~2范围内的成员数量 | ZCOUNT myzset 1 2 |
| 删除成员 | ZREM myzset three |
| 获取位置索引 | ZRANK myzset one |
①创建zset类型的键值ZADD myzset 1 one
![]()
②查看元素和权重ZRANGE myzset 0 -1 withscores

③查看成员的权重ZSCORE myzset two
![]()
④获取位置索引 ZRANK myzset one

⑤查询成员数量ZCARD myzset
![]()
⑥统计权重在1~2范围内的成员数量ZCOUNT myzset 1 2


⑦删除成员ZREM myzset three

6、普通类型set和hash类型hset该如何选择?
一般情况下,无特殊需求时,普通创建方式即可;但对一个键值进行多字段存储及节省内存可以使用hash方式
相关文章:
redis非关系型数据库(缓存型数据库)——中间件
【重点】redis为什么这么快?(应届) ①redis是纯内存结构,避免磁盘I/O的耗时 ②redis核心模块是一个单进程,减少线程切换和回收线程资源时间 ③redis采用的是I/O的多路复用机制(每一个执行线路可以同时完…...
Android 9.0 隐藏设置显示中自动调节亮度
Android 9.0 隐藏设置显示中自动调节亮度 最近收到邮件需求提到想要隐藏设置显示中的自动调节亮度,具体修改参照如下: /vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/display_settings.xml - <Preference<!--Preferencea…...
2020年计网408
第33题 下图描述的协议要素是( )。I. 语法 II. 语义 III. 时序 A. 仅 I B. 仅 II C. 仅 III D. I、II 和 III 本题考察网络协议三要素的相关知识。 网络协议的三要素分别是语法、语义、同步(时序)。语法:定义收发双…...
手把手教你编写LoadRunner脚本
编写 LoadRunner 脚本需要熟悉脚本语言、业务场景、参数化技术、断言和事务等基础知识。 在实际编写时,可以根据具体测试需求,结合实际情况进行合理的配置和调整。 基本步骤 创建脚本 在 LoadRunner 的 Controller 模块中,创建一个新的测…...
2311rust,到74版本更新
1.66.0稳定版 显式判定有字段的枚举 即使有字段,带整数表示的枚举现在也可用显式判定器. #[repr(u8)] enum Foo {A(u8),B(i8),C(bool) 42, }跨语言边界传递值时,在两个语言中匹配枚举表示时,显式判定器非常有用.如 #[repr(u8)] enum Bar {A,B,C 42,D, }这里保证Bar枚举有…...
Web项目从Tomcat迁移到TongWeb
注意事项 1. 使用JNDI方式获取数据源: ①在TongWeb创建JDBC连接池; ②修改Web项目数据源配置. #spring.datasource.urljdbc:mysql://127.0.0.1:3306/demo #spring.datasource.usernametest #spring.datasource.passwordspring.datasource.jndi-namedemo2. 修…...
Polygon Miden VM架构总览
1. 计算类型 Programs程序有2种类型: 1)Circuit电路:即,程序即电路。将程序转换为电路。2)Virtual machine虚拟机:即,程序为电路的输入。【Miden VM属于此类型】 2. 何为ZK virtual machine…...
ultralytics yolov8 实例分割 训练自有数据集
参考: https://docs.ultralytics.com/datasets/segment/coco/ http://www.bryh.cn/a/613333.html 1、数据下载与转换yolo格式 1)数据集下载: 参考:https://universe.roboflow.com/naumov-igor-segmentation/car-segmetarion 下载的是coco格式,需要转换 2)coco2yolo t…...
linux之进程地址空间
文章目录 1.进程地址空间回顾1.1进程地址空间划分1.2验证进程地址空间划分1.简单划分2.完整划分 2.初探进程地址空间2.1初看现象2.2Makefile的简便写法 3.进程地址空间详解3.1地址空间是什么?3.2地址空间的设计/由来3.3空间区域划分3.4如何理解地址空间?3.5解释3.2的…...
Cloud微服务
当我们谈论“云微服务”时,通常是指基于云计算和微服务架构的应用程序开发和部署模型。以下是关于云微服务的一些详细信息: 微服务架构: 微服务架构是一种软件设计和开发模式,将应用程序划分为一组小型、独立的服务单元。每个服…...
BLIP-2:冻结现有视觉模型和大语言模型的预训练模型
Li J, Li D, Savarese S, et al. Blip-2: Bootstrapping language-image pre-training with frozen image encoders and large language models[J]. arXiv preprint arXiv:2301.12597, 2023. BLIP-2,是 BLIP 系列的第二篇,同样出自 Salesforce 公司&…...
PyQt(学习笔记)
学习资料来源: PyQt快速入门——b站王铭东老师 PyQt官网的所有模块 C具体实现的官方文档 PyQt(学习笔记) PyCharm环境准备运行第一个程序QPushButtonQLabelQLineEdit调整窗口大小、位置、图标布局信号与槽PyQt引入多线程 PyCharm环境准备 新…...
策略模式应用(内窥镜项目播放不同种类的视频)
新旧代码对比 策略模式 基本概念 策略模式是一种行为设计模式,它定义了一系列算法,将每个算法封装起来,并且使它们可以互相替换。策略模式允许客户端选择算法的具体实现,而不必改变客户端的代码。这样,客户端代码就…...
【操作系统】Bochs安装和配置
Bochs是使用C编写的高度可移植开源IA-32(X86)PC模拟器,能在大多数流行的平台上运行。它包括模拟Intel x86 CPU、常见I/O设备和自定义BIOS。Bochs可以被编译以模拟许多不同的x86 CPU,从386早期到最新的x86-64英特尔和AMD处理器甚至…...
【Vue】Node.js的下载安装与配置
目录 一.下载安装 官网: 二.环境变量的配置 三.设置全局路径和缓存路径 四.配置淘宝镜像 五.查看配置 六.使用npm安装cnpm 一.下载安装 官网: https://nodejs.org/en/download 下载完之后,安装的时候一直点next即可,…...
C语言从入门到实战——数组和指针的强化练习题
数组和指针的强化练习题 前言1. sizeof和strlen的对比1.1 sizeof1.2 strlen1.3 sizeof和strlen的对⽐ 2. 数组和指针笔试题解析2.1 一维数组2.2 字符数组2.3 二维数组 3. 指针运算笔试题解析3.1 题目1:3.2 题目23.3 题目33.4 题目43.5 题目53.6 题目63.7 题目7 前言…...
经典滑动窗口试题(一)
📘北尘_:个人主页 🌎个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上,不忘来时的初心 文章目录 一、将x减到0的最小操作数1、题目讲解2、讲解算法原理3、代码实现 二、无重复的最长子串1、题…...
【paddlepaddle】
安装paddlepaddle 报错 ImportError: /home/ubuntu/miniconda3/envs/paddle_gan/bin/../lib/libstdc.so.6: version GLIBCXX_3.4.30 not found (required by /home/ubuntu/miniconda3/envs/paddle_gan/lib/python3.8/site-packages/paddle/fluid/libpaddle.so) 替换 /home/ubu…...
String 、StringBuffer 和 StringBuilder 的区别?
String 使用 String 声明一个字符串的时候,该字符串会存放在堆中的字符串常量池中。因为在java中所有的String 都是以常量表示,且由 final 修饰,因此在线程池中它的线程是安全的 且 不可变的 。每个 String 在被创建后就不再发生任何变化。 …...
【DevOps】Git 图文详解(六):Git 利器 - 分支
Git 利器 - 分支 1.分支 Branch2.分支指令 🔥3.分支的切换 checkout4.合并 merge & 冲突4.1 🔸 快速合并(Fast forward)4.2 🔸 普通合并4.3 处理冲突 <<<<<<< HEAD 5.变基 rebase 分支是从主…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
Go语言多线程问题
打印零与奇偶数(leetcode 1116) 方法1:使用互斥锁和条件变量 package mainimport ("fmt""sync" )type ZeroEvenOdd struct {n intzeroMutex sync.MutexevenMutex sync.MutexoddMutex sync.Mutexcurrent int…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题:安全。文章将详细阐述认证(Authentication) 与授权(Authorization的核心概念,对比传统 Session-Cookie 与现代 JWT(JS…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
