Redis学习及总结

Redis 快速入门

Redis属于非关系型数据库
SQL应用场景

  1. 数据结构固定
  2. 相关业务对数据安全性一致性要求高

NoSQL应用场景

  1. 数据结构不固定
  2. 对一致性,安全性要求不高
  3. 性能要求高

🎯需要使用Xftp 传输压缩包到虚拟机上

安装好Redis后,
执行命令redis-server选择一个特定的执行目录,日志、持久化文件等都会保存在这个目录里面

将redis在后台运行
修改redis配置文件 redis.conf
(在正常模式输入 /想要查找的配置)

监听地址:bind 0.0.0.0
守护进程:daemonize yes
密码:设置后访问Redis必须输入密码
requirepass:123321

其他的配置

数据库数量默认有16个库,编号是0-15
database:1 代表只使用一个库

设置Redis能够使用的最大内存
maxmemory 512mb

日志文件,默认为空,不记录日志,可以指定日志文件名
logfile “redis.log”

在安装目录下,执行
redis-server redis.conf

查看是否启动成功
ps -ef | gref redis

杀死进程
kill -9 进程号

为了开启redis方便
开机自启
创建一个新文件

vi /etc/systemd/system/redis.service

添加内容:
image.png
内容如下:
[unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/src/redis-7.2.4/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重载系统服务:

systemctl daemon-reload
此时redis正在被我们的系统管理

启动redis:

systemctl start redis

查看状态:

systemctl status redis

停止redis:

systemctl stop redis

重启redis:

systemctl restart redis

启动开机自启:

systemctl enable redis

redis客户端

位置 /usr/local/bin
redis命令行客户端
在我们安装redis 的时候已经安装了 redis-cli
启动:

redis-cli [option] [commonds]

常见的option

  1. -h redis连接的IP地址 127.0.0.1 不输入默认是本机地址
  2. -p 6379 :指定端口,不输入默认是6379
  3. -a 123321 : 指定密码

进入客户端不输入密码
使用命令输入密码

AUTH 123321

连接成功
输入ping 响应PONG 表示连接成功

默认使用的库是db0
可以简单的设置
set name john
set age 21
get name
get age

切换库 :select 库序号(0-15)

redis常见命令

基本类型:
String
Hash
List
Set
SortedSet
特殊类型:后面讲
GEO
BitMap
Hyperlog

官方文档: https://redis.io/
image.png
命令行方式查看通用命令文档
进入redis命令行客户端
help @generic

通用命令

常见命令 当个命令的使用范围是在一个库里面
KEYS 查看符合模板的所有key;不能在生产环境下使用,底层使用模糊查询,会导致redis阻塞
DEL 删除一个指定的key,可以一起删除多个key,删除成功返回对应删除的个数
EXISTS 判断key是否存在,可以批量查看;存在返回值大于0,不存在返回0
EXPIRE 给对应key添加过期时间,单位是秒
TTL 查看对应的key剩余的存在时间,返回值为-2表示已经不存在,返回值为大于0,表示仍然存在大于0秒的时间
image.png
image.png
当我们没有给键 设置过期时间,这个键就是永久的,使用ttl查看返回-1,表示的就是永久

数据结构

由于我的虚拟机不是使用超级管理员root登录的,而是自己创建的账号redis
进入超级管理员的命令是 su - 并且输入密码即可

全部可以通过帮助文档找到 help @string

String类型

string 类型的数据结构底层都是 字节数组
字符串类型的最大空间不能超过512m

string类型中,为了存储空间的容量,格式还分为string,integer,float
string是正常的字符串类型
integer和float是数值类型,数值类型有自增自减的功能

string类型的常用的命令:

  1. set:如果key存在,则是修改的功能
  2. get:获取
  3. mset:批量添加或者修改 k1 v1 k2 v2
  4. mget:批量获取
  5. incr:数值类型比如int,让一个整型key 自增1
  6. incrby:数值类型让一个整型的key 指定自增的值;实现自减,指定的值为负数即可
  7. incrbyfloat:浮点类型的数据进行 自增的操作,每次定义自增的步长
  8. setnx:相比于set不存在相同的数据,真正表示新增,如果key存在,不生效
  9. setex:新增并且添加有效期 参数:key seconds value

redis 操作的都是对key 进行操作,进而影响到value

key的层级格式

⭐问题:redis没有mysql表的概念,所有当我们进行不能数据的存储的时候,可能会出现冲突,比如id冲突
解决的方法
在redis中,key可以进行层级的命名 []:[]:[]
比如 公司:组名:键;或者是 【项目名】:【业务名】:【类型】:【id】
就可以实现分层次,不会产生冲突
image.png
key
user:name:1
value
{
“name”:“ylx”,
“age”:“21”
}
value 对于Java对象来说,可以将对象json化之后,就可以存储到redis中
image.png

hash类型

优点:对比string 如果values要进行修改,可以单独对value中其中一个field进行修改,而string没有办法进行对value中的值进行当个修改,更加灵活。
常见命令
image.png
hset 和 hmset 用法一致
image.png

image.png
总结:

  1. hset 命令和hmset 命令一样,可以为单个Key 批量添加多个 field和value
  2. hget 命令和 hmget命令则不是一样的,hget只能获取到一个字段,hmget可以批量获得
  3. hgetall 获取field和value;hkeys 获取field; hvals 获取value
  4. hsetnx 添加一个key 的 field字段,前提是这个field字段不存在,否则添加不成功

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

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

相关文章

UE5 PAK包热加载

参考知乎UE5 Pak学习与应用(一)运行时导入模型 - 知乎 使用的版本为UE5.1 使用插件为HorPatcher和EasyFile Dialog HotPatcher:UE资源热更打包工具HotPatcher | 循迹研究室 ,Github地址为:GitHub - hxhb/HotPatcher: Unreal Engine hot update manage …

最小生成树超详细介绍

目录 一.最小生成树的介绍 1.最小生成树的简介 2.最小生成树的应用 3.最小生成树的得出方法 二.Kruskal算法 1.基本思想: 2.步骤: 3.实现细节: 4.样例分析: 5.Kruskal算法代码实现: 三.Prim算法 1.基本思想…

【多模态大模型】视觉大模型SAM:如何使模型能够处理任意图像的分割任务?

SAM:如何使模型能够处理任意图像的分割任务? 核心思想起始问题: 如何使模型能够处理任意图像的分割任务?5why分析5so分析 总结子问题1: 如何编码输入图像以适应分割任务?子问题2: 如何处理各种形式的分割提示?子问题3:…

【数据结构和算法】--- 基于c语言排序算法的实现(1)

目录 一、排序的概念及其应用1.1排序的概念1.2 排序的应用1.3 常见的排序算法 二、插入排序2.1直接插入排序2.2 希尔排序2.2.1 预排序2.2.2 缩小gap2.2.3 小结 三、选择排序3.1 直接选择排序3.2 堆排序 一、排序的概念及其应用 1.1排序的概念 排序: 所谓排序&…

RTE2023第九届实时互联网大会:揭秘未来互联网趋势,PPT分享引领行业新思考

随着互联网的不断发展,实时互动技术正逐渐成为新时代的核心驱动力。 在这样的背景下,RTE2023第九届实时互联网大会如期而至,为业界人士提供了一个探讨实时互联网技术、交流创新理念的绝佳平台。 本文将从大会内容、PPT分享价值等方面&#…

ShardingSphere 5.x 系列【6】YAML 配置介绍

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列ShardingSphere 版本 5.4.0 源码地址:https://gitee.com/pearl-organization/study-sharding-sphere-demo 文章目录 1. 前言2. YamlConfiguration3. 常用配置项3.1 JDBC 驱动3.2 数据源3.3 规则…

mysq开启慢查询日志,对慢查询进行优化

1.创建实验的环境 创建对应的数据库,然后写脚本向数据库中写入400万条的数据 //创建实验用的数据库 CREATE DATABASE jsschool;//使用当前数据库 USE jsschool;//创建学生表 CREATE TABLE student (sno VARCHAR(20) PRIMARY KEY COMMENT 学生编号,sname VARCHAR(20…

加固平板电脑丨三防智能平板丨工业加固平板丨智能城市管理

随着智能城市的不断发展,人们对于城市管理的要求也在不断提高,这就需要高效、智能的城市管理平台来实现。而三防平板就是一款可以满足这一需求的智能设备。 三防平板是一种集防水、防尘、防摔于一体的智能平板电脑,它可以在复杂的环境下稳定运…

python介绍,安装Cpython解释器,IDE工具pycharm的使用

python介绍 官方的Python解释器本质是基于C语言开发的一个软件,该软件的功能就是读取以py.结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种C实现的解释器被称为Cpython。 python解释器的种类:Jython IPyth…

记录下ibus-libpinyin输入法的重新安装

目前的版本为: 首先把现在的ibus-libpinyin卸了 sudo apt-get --purge remove ibus-libpinyin sudo apt-get autoremove 安装教程请参考 Installation libpinyin/ibus-libpinyin Wiki GitHub yilai sudo apt install pkg-config sudo apt-get install lib…

实战分享:SpringBoot在创新创业项目管理中的应用

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

Unity3d Shader篇(三)— 片元半兰伯特着色器解析

文章目录 前言一、片元半兰伯特着色器是什么?1. 片元漫反射着色器的工作原理2. 片元半兰伯特着色器的优缺点优点:缺点: 3. 公式 二、使用步骤1. Shader 属性定义2. SubShader 设置3. 渲染 Pass4. 定义结构体和顶点着色器函数5. 片元着色器函数…

QT设置qss

Qt设置qss文件(设置在qrc中) 1、右击项目选择添加新文件 2、在弹出的对话框中选择Qt -> Qt Resource File 3、随便起一个名称 4、在代码路径下新建一个stylesheet.qss文件,随便写入一些样式 5、右击resources.qrc,选择添加…

地理格网地址赋码过程

1.地址地名赋码流程 1.由镇街收集数据并且统一入库到地址数据库中; 2.进行地址字段的详细校验; 3.对进行校验通过的数据按照西湖区统一地址规则进行赋码 4.对进行校验失败的数据反馈成 execl 给镇街进行数据的核对校对 2地址校验规则 # 必填字段规范 省(字段名 - provinc…

进阶C语言-通讯录的实现

通讯录 🎈1.设计要求🎈2.程序实现🔭2.1打印菜单及初始化通讯录🔭2.2显示所有联系人🔭2.3查找指定的联系人🔭2.4删除指定的联系人🔭2.5查找指定的联系人🔭2.6修改指定联系人🔭2.7按照年龄排序(以此为例)🎈3.全部源码以及实现🎈1.设计要求 🌞通过前面…

SpringSecurity(17)——OAuth2令牌管理策略

刷新令牌策略 注意&#xff1a;刷新令牌只有在授权码模式和密码模式中才有&#xff0c;对应的指定这两种模式时&#xff0c;在类型上加上refresh_token <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-se…

【Flink入门修炼】1-1 为什么要学习 Flink?

流处理和批处理是什么&#xff1f; 什么是 Flink&#xff1f; 为什么要学习 Flink&#xff1f; Flink 有什么特点&#xff0c;能做什么&#xff1f; 本文将为你解答以上问题。 一、批处理和流处理 早些年&#xff0c;大数据处理还主要为批处理&#xff0c;一般按天或小时定时处…

如何在docker中访问电脑上的GPU?如何在docker中使用GPU进行模型训练或者加载调用?

如何在docker中访问电脑上的GPU&#xff1f;如何在docker中使用GPU进行模型训练或者加载调用&#xff1f; 其实使用非常简单&#xff0c;只是一行命令的事&#xff0c;最主要的事配置好驱动和权限。 docker run -it --rm --gpus all ycj520/centos:1.0.0 nvidia-smi先看看 st…

Kafka 使用手册

kafka3.0 文章目录 kafka3.01. 什么是kafka&#xff1f;2. kafka基础架构3. kafka集群搭建4. kafka命令行操作主题命令行【topic】生产者命令行【producer】消费者命令行【consumer】 5. kafka生产者生产者消息发送流程Producer 发送原理普通的异步发送带回调函数的异步发送同步…

Mac OS中创建适合网络备份的加密镜像文件:详细步骤与参数选择

这篇文章提供了在Mac OS中创建适合网络备份的加密镜像文件的详细步骤&#xff0c;同时探讨了在选择相关参数时的关键考虑因素&#xff0c;以确保用户能够安全、高效地存储和保护重要数据。 创建步骤 在Mac OS Monterey中&#xff0c;你可以使用“磁盘工具”&#xff08;Disk …