Redis——基础篇(包含redis在云服务上的docker化安装和连接以及常用命令)

初识Redis

Redis为键值型数据库,数据以键值形式存储。没有表,没有约束。

 认识NoSQL

 mysql就是典型的关系型数据库(SQL)。

目的都是数据的增删改查,但数据存储方式不一样。

 

关系型和非关系型在结构上有差异

关系型的结构一般定好后就很少修改,非关系型的就更加自由

 关系型数据库的关系体现如下,不同表可以通过外键进行联系

 非关系型数据库因为没有表,所以像下面记录一个用户下的订单需要通过json嵌套的形式

 查询方面差异

关系型数据库都可以使用同一套SQL语句进行查询,NoSQl的查询语法不统一,不同的NoSQl数据库有不同的语法

 事物上的差异

关系型数据库的事物有ACID特性: 原子性,一致性,隔离性,持久性

NoSQl数据库要么无事务,要么就是只能做基本的一致性,ACID无法全部满足,只有BASE性:系统能够基本运行,一直提供服务 

速度差异:磁盘读写速度远慢于CPU速度,因此存在内存中的NoSQl速度很快。

认识Redis

 

 安装Redis

因为redis官方没有提供windows版本(但听说github上有),只有liunx,所以这里有两种选择,一是在本地安装虚拟机跑redis,而是在云服务器跑redis

这里我选择在云服务器装redis, 官方也有提供redis的docker镜像

这里首先在云服务器上使用如下命令拉取redis镜像

docker pull redis

拉取速度慢的话可以换源,可以看下面这个博主的文章,建议换阿里的源,快的不是一点半点

docker 换镜像源以解决拉取镜像速度慢的问题_dock拉取镜像很慢_farkuai的博客-CSDN博客

然后用镜像创建一个容器

docker run -d -p 6379:6379 --name myredis redis

 用docker ps -a 看容器的id

docker ps -a

然后用以下命令打开redis服务

docker exec -it 容器的id redis-cli

然后就可以直接使用一个软件进行连接了,不需要管配置文件那些什么的,更不需要文件夹映射什么的

 这里拉取容器下来的redis默认是没有密码的,所以可以直接用服务器+端口后进行连接

 为了安全起见,还是要先修改密码。

//使用如下命令查询信息
config get requirepass

//使用如下命令修改密码
config set requirepass password

//使用如下命令确认密码,否则报错
auth password

//再次查看密码
config get requirepass

设置完密码之后的每次登陆都要带上密码,否则能进去但不能使用命令

 

 docker exec -it b66f2d4fb5b3 redis-cli -a 234799

连接成功时界面是这样的

 这里默认有16个仓库,可以通过以下语句选择哪一个仓库

# 选择 0号库
select 0

 Redis命令——数据结构

 

Redis命令——通用命令

#查看相关命令的信息
help commad


#查询所有的key
keys * 
#查询所有以n开头的key
keys n*
#查询所有带有n的key
keys *n*

//类似sql的模糊查询


#删除指定的key
del key
#删除多个key
del  k1 k2 k3 k4    #实际删除多少个就会返回多少个

//只能指定key后删除


#判断key是否存在
exists k1 k2       #返回值是存在的key的数量


#给一个key设置有效期,到期就会删除,因为redis在内存存储,不删的话会爆内存
expire key  20   #20s有效期


#查看一个key的有效期
ttl key          #返回剩余秒数
返回-1则是永久有效

Redis命令——String类型常见命令

甚至可以把图片变成字节流存在redis里面

 

 常见命令

#设置三个键值对 k1:v1  ....
mset k1 v1 k2 v2 k3 v3

#获取多个key的值
mget k1 k2 k3

#返回值是自增后的结果
incr  age 

#让age每次自增-2
incrby age -2

#浮点数自增0.5
incrbyfloat age 0.5

#如果不存在才增加,可以有效防止覆盖
setnx age 2
set age 2 nx    #效果相同

#添加一个key=5并设置有效期为10
setex age 10 5
set age 5 ex 10
//可以覆盖已有的key,相当于set和expire组合

 

Redis命令——key的层级格式

 ​​​​​​​

 使用如下的四条语句设置4条数据

set  itheima:user:1 '{"id":1, "name":"Jack", "age": 21}'

set  itheima:user:2 '{"id":2, "name":"Rose", "age": 18}'

set  itheima:user:3 '{"id":1, "name":"小米11", "price": 4999}'

set  itheima:user:4 '{"id":2, "name":"荣耀6", "price": 2999}'

 然后在图形界面客户端可以看见有如下层级

Redis命令——Hash类型相关命令

类比就是map<String,map>,套娃

 

 常见命令

hmset已经弃用,使用hset可以达到hmset效果 

hdel :删除一个key下面指定的field和values

Redis命令——List类型相关命令

 常见命令

 

 Redis命令——Set类型相关命令

常用命令

  Redis命令——SortedSet类型相关命令

 

常用命令

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JAVAEE】JVM中垃圾回收机制 GC

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 上篇文章我们讲了java运行时内存的各个区域。 传送门&#xff1a;【JavaEE】JVM的组成及类加载过程_xyk:的博客-CSDN博客 对于程序计数器、虚拟机栈、本地方法栈这三部分区域而言&#x…

动态规划01背包之1049 最后一块石头的重量 II(第9道)

题目&#xff1a; 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 。那么粉碎的可能结果如下&#xff1a; …

微信小程序(二)

目录 1、input标签 一、表单绑定 1、数据绑定 2、输入获取 二、网络请求 1、介绍 2、注意 3、使用 4、基于Promise封装 三、自定义组件 1、创建 2、父向子组件通信 3、子向父组件通信 4、生命周期 四、vant weapp组件库 1、配置 2、使用 进入本章前的拓展&#…

Git❀详细使用教程

Git❀详细使用教程 一、Git简介1.1 什么是Git&#xff1f;1.2 Git的特点1.3 集中式与分布式的区别&#xff1f;1.4 Git工作流程图 二、Git安装与常用命令2.1 Git环境配置2.1.1 下载与安装2.1.2 基本配置2.1.3 为常用指令设置别名&#xff08;可选&#xff09;2.1.4 解决GitBash…

jsonschema networknt json-schema-validator 高级能力json 数字很大时, 变成什么类型

入参校验产品化 schema_个人渣记录仅为自己搜索用的博客-CSDN博客 自动变成了bigInteger类型. 哪怕你的jsonSchema 配置的是integer , 不冲突.

AlGaN基深紫外FP激光器仿真模型及材料信息数据库有何用途?

波长范围为UVC波段&#xff08;100-280 nm&#xff09;的深紫外FP&#xff08;Fabry-Pero&#xff0c;法布里和珀罗是两位法国的科学家&#xff09;激光器可广泛应用于数据通信、光通信、3D打印、材料加工、显示与照明、激光雷达、人脸/手势识别、医疗和表面监测等领域。FP激光…

2023年Q2京东冰箱行业品牌销售排行榜(京东销售数据分析)

近年我国的冰箱零售呈波动变化的趋势&#xff0c;由于冰箱市场趋于饱和&#xff0c;因此消费者对冰箱的需求逐渐变为替换需求&#xff0c;这也进一步推动了产品的更新迭代。接下来结合具体数据&#xff0c;我们来分析一下2023年Q2冰箱行业的销售详情。 根据鲸参谋电商数据分析平…

SpringBoot+Vue实现的高校图书馆管理系统

项目描述&#xff1a;这是一个基于SpringBootVue框架开发的高校图书馆管理系统。首先&#xff0c;这是一个前后端分离的项目&#xff0c;代码简洁规范&#xff0c;注释说明详细&#xff0c;易于理解和学习。其次&#xff0c;这项目功能丰富&#xff0c;具有一个高校图书馆管理系…

6.2.5 网络基本服务----动态主机配置协议DHCP

6.2.5 网络基本服务----动态主机配置协议DHCP 动态主机配置协议允许一台计算机加入新的网络时可自动获取网络配置信息&#xff0c;不用人工参与。连网的计算机需要配置的参数包括 IP地址子网掩码默认路由器的IP地址域名服务器IP地址 DHCP与DNS、FTP、Telnet一样也采用客户服…

Lua脚本本地调试

这里主要使用日志的方式进行debug 环境依赖 项目对openresty包的依赖比较高&#xff0c;所以环境基础都在openresty下进行 openresty的使用 openresty下载地址 下载完成后解压&#xff0c;具体使用方式和nginx没有什么区别&#xff0c;主要依赖文件是一下几个 nginx.exe …

搬家送货小程序开发源码定制一键报警实时定位路线规划

1.货物信息录入&#xff1a; 用户可以输入货物的名称、数量、重量、尺寸等信息。 2.路线选择&#xff1a; 用户可以选择起始地点和目的地点&#xff0c;并根据需求选择最佳路线。 提供地图服务或第三方路径规划服务&#xff0c;以帮助用户确定最佳路线。 3.车辆选择&#…

基于深度学习的高精度鸡蛋检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度鸡蛋检测识别系统可用于日常生活中或野外来检测与定位鸡蛋目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的鸡蛋目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型…

跨域问题解决

由于同源策略&#xff0c;需要协议&#xff0c;域名&#xff0c;端口三个都相同才能进行访问&#xff0c;是一种浏览器的保护策略 CORS:Cross Origin Resource Sharing SpringBoot 项目中解决跨域 1.在目标方法中加入CrossOrigin注解 2.添加一种过滤器 分别是允许哪些域&#…

ffmpeg2段视频合成一段

查看分辨率 帧率和编码器 ffprobe -v error -select_streams v:0 -show_entries streamcodec_name,width,height,avg_frame_rate -of defaultnoprint_wrappers1 rs2.mp4得到&#xff0c;编码器&#xff0c;分辨率&#xff0c;还有帧率 codec_nameh264 width1920 height1080 avg…

Linux 发行版 Gentoo 存在重大漏洞

网络安全公司 SonarSource 在日前研究中发现&#xff0c;Gentoo Linux 发行版中存在漏洞 CVE-2023-28424&#xff0c;黑客可以利用该漏洞进行 SQL 注入攻击。 研究人员从 GentooLinux 的 Soko 搜索组件中找到了这个漏洞。该漏洞的 CVSS 风险评分为 9.1&#xff0c;属于特别重大…

Flutter 仿抖音、豆瓣、知乎、番茄小说的评论弹窗开发实践

最近用flutter做了一个评论弹窗的功能&#xff0c;本来以为很简单的烂大街的一个功能&#xff0c;结果却遇到了不少的问题&#xff0c;而且这些问题我觉得很有意义&#xff0c;以至于我觉得我如果分享出来可能会对其他人很有帮助。 要做一件事情可能会很容易&#xff0c;但做好…

springboot之配置文件加载

springboot启动流程参考。Springboot总结。本内容主要解析里面的配置文件的加载过程。 springboot资源加载 入口。SpringApplication#run 我们知道&#xff0c;run方法是构建容器的过程。里面有一个方法&#xff1a;prepareEnvironment。用于构建环境组件Environment&#xf…

cocos2d-js中jsc逆向为js

1.下载脚本https://github.com/tablis/jsc-decompile-mozjs-34 2.安装php7以上的版本 ubuntu $ sudo apt install php7.0 mac $ brew install php7.0 windows just google an binary one 查看php安装的版本这里mac电脑为例子: 输入:php -v 只要7以上的版本即可 3.cd到…

http协议(二)

欢迎来到南方有乔木的博客&#xff01;&#xff01;&#xff01; 博主主页&#xff1a;点击点击&#xff01;戳一戳&#xff01;&#xff01; 博主名:南方有乔木呀 博主简介&#xff1a; 一名在校大学生&#xff0c;正在努力学习Java语言编程。穷且意坚&#xff0c;不坠青云…

Go语言基础教程:变量、基本数据类型、输出、注释、运算符、if-else条件判断、函数

文章目录 一、变量的使用1.1 定义变量1.2 常量1.3 变量的赋值与内存相关 二、变量基本类型2.1 有符号整型2.2 无符号整型2.3 string类型2.4 bool类型 三、输出3.1 常用打印功能3.2 格式化输出3.3 内置输出方法与fmt的区别 四、注释五、运算符六、条件语句6.1 基本使用6.2 条件嵌…