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代表数值,不是下表索引)

3hash类型

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

4set无序集合类型——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

5zset有序集合类型——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方式

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

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

相关文章

java面试八股文2023完整版详解110题附带答案

以下是一份Java面试八股文2023,涵盖了Java编程语言的核心概念和常用技术,帮助你更好地准备面试。 1. Java语言有哪些特点? Java语言是一种面向对象的编程语言,具有简单、面向对象、分布式、多线程、动态等优点。它是一种跨平台的…

vue 自定义指令

vue 自定义指令 分类 全局指令 Vue.directive()局部指令 directives vue 自定义指令 钩子函数 vue3 自定义指令 分类 全局指令 app.directive()局部指令 directives vue3 自定义指令 钩子函数 vue 自定义指令 除了Vue提供的内置指令之外,你还可以自定义指令来扩展…

P1281 书的复制

P1281 书的复制 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 书按顺序给k个人,进行抄写,求抄写页数最多的人所用的时间的最小值。最大值最小,考虑二分。 又因为题目要求要尽可能让前面的人少抄写,那么就要求后面的多抄写&…

npm install 下载不下来依赖解决方案

背景 最近在构建 前端自动化部署 的方案中发现了一个问题,就是我在npm install的时候,有时候成功,有时候不成功,而且什么代码也没发生更改,报错也就是那么几个错,所以在此也整理了一下遇到这种情况&#xf…

如何使用 WPF 应用程序连接 FastReport报表

随着期待已久的FastReport WPF的发布,您不再需要使用 FastReport .NET 来处理基于 WPF 的项目。 不久前,在 FastReport .NET 中使用 WPF 还相当不方便。并非一切都进展顺利;连接 FastReport.dll 和许多其他问题存在问题。我们重新思考了该方…

2023年中职“网络安全“—Web 渗透测试①

2023年中职"网络安全"—Web 渗透测试① Web 渗透测试任务环境说明:1.访问地址http://靶机IP/task1,分析页面内容,获取flag值,Flag格式为flag{xxx};2.访问地址http://靶机IP/task2,访问登录页面。…

element-ui组件输入框之放大镜(搜索图标)

element-ui组件输入框之放大镜(搜索图标 前言一、解决suffix-icon"el-icon-search"绑定事件问题 前言 在使用element-ui组件时想给输入框组件中的放大镜图标也就是搜索图标绑定事件,可以进行如下操作: 一、解决suffix-icon"el-icon-sear…

面试题c/c++--语言基础

一 、语言基础 1.1 指针 野指针:指针指向的位置是不可知的 悬空指针:指针最初指向的内存已经被释放了的一种指针 两种指针都指向无效内存空间, 即不安全不可控 。需要在定义指针后且在使用之前完成初始化或者使用 智能指针来避免 智能指针 智…

获取阿里云Docker镜像加速器

1、阿里云官网(www.aliyun.com)注册账号 2、打开“控制台首页” 控制台首页地址:https://home.console.aliyun.com/home/dashboard/ProductAndService 3、点击“概览->容器镜像服务 ACR” 4、打开“镜像工具->镜像加速器”页面&#x…

【grafana | clickhouse】实现展示多折线图

说明: 采用的是 Visualizations 的 Time series,使用的 clickhouse 数据源 在工作中遇到了一个需求,写好了代码,需要在grafana上展示在一个项目中所有人的,随时间的代码提交量变化图 目前遇到的问题:展示…

FFmpeg常用命令行讲解及实战一

文章目录 前言一、学习资料参考二、FFmpeg 选项1、主要选项①、主要命令选项②、举例 2、视频选项①、主要命令选项②、举例1)提取固定帧2)禁止输出视频3)指定视频的纵横比 3、音频选项①、主要命令选项②、举例 4、字幕选项①、主要命令选项…

负载均衡简介

负载均衡 负载均衡(Load Balance,简称 LB)是高并发、高可用系统必不可少的关键组件,目标是 尽力将网络流量平均分发到多个服务器上,以提高系统整体的响应速度和可用性。 负载均衡的分类和OSI模型息息相关&#xff0c…

从服务器端获取人脸数据,在本地检测特征,并将特征发送给服务器

目录 1.定义函数get_database_process: 2.定义函数features_construct: 3.定义函数send_features_data: 4. 定义函数database_features_construct: 5. main 函数 1.定义函数get_database_process: …

【CHI】Ordering保序

本节介绍CHI协议所包含的支持系统保序需求的机制,包括: • Multi-copy atomicity • Completion response and ordering • Completion acknowledgment • Transaction ordering 一、 Multi-copy atomicity CHI协议中所使用的memory model要求为mu…

【面试经典150 | 数学】Pow(x, n)

文章目录 写在前面Tag题目来源题目解读解题思路方法一:快速幂-递归方法二:快速幂-迭代 其他语言python3 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主…

01背包 P1507 NASA的食物计划

P1507 NASA的食物计划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 普通01背包状态表示:f(i, j)表示前i件物品放入一个容量为j的背包可以获得的最大价值。 本题类似,f(i, j, k)表示前i件物品放入一个限制为j,且另一个限制为k的背包中可以…

王者荣耀游戏

游戏运行如下: sxt Background package sxt;import java.awt.*; //背景类 public class Background extends GameObject{public Background(GameFrame gameFrame) {super(gameFrame);}Image bg Toolkit.getDefaultToolkit().getImage("C:\\Users\\24465\\D…

原型模式-C++实现

原型模式是一种创建型设计模式,它允许通过克隆现有的对象来生成新的对象,而不是通过实例化新对象。 原型模式同样用于隔离类对象的使用者和具体类型之间的耦合关系,它同样要求这些“异变类”有稳定的接口。 举例: 假设有一个游戏…

5分钟教你轻松搭建Web自动化测试框架

在程序员的世界中,一切重复性的工作,都应该通过程序自动执行。「自动化测试」就是一个最好的例子。 随着互联网应用开发周期越来越短,迭代速度越来越快,只会点点点,不懂开发的手工测试,已经无法满足如今的…

3.8-镜像的发布

如果我们想将image push到docker hub里面,那么我们的image的名字一定要是这种格式:docker hub id/imageName,例如:lvdapiaoliang/hello-docker docker hub个人账户设置地址: 在push之前要先登录: docker l…