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

news2024/11/15 21:43:52

初识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类型相关命令

 

常用命令

 

 

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

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

相关文章

基于 FFmpeg 的跨平台视频播放器简明教程(六):使用 SDL 播放音频和视频

系列文章目录 基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;一&#xff09;&#xff1a;FFMPEG Conan 环境集成基于 FFmpeg 的跨平台视频播放器简明教程&#xff08;二&#xff09;&#xff1a;基础知识和解封装&#xff08;demux&#xff09;基于 FFmpeg 的跨平台视频…

【unity小技巧】委托(Delegate)的基础使用和介绍

文章目录 一、前言1. 什么是委托&#xff1f;2. 使用委托的优点 二、举例说明1. 例12. 例2 三、案例四、泛型委托Action和Func1. Action委托2. Func委托 五、参考六、完结 一、前言 1. 什么是委托&#xff1f; 在Unity中&#xff0c;委托&#xff08;Delegate&#xff09;是一…

2FRE-10B-35-G24电比例调速阀控制器

2FRE-06B-20-G24、2FRE-10B-35-G24、2FRE-10B-50-G24、2FRE-16B-80-G24、2FRE-16B-115-G24、2FRE-16B-160-G24电比例调速阀&#xff0c;通过给定电信号&#xff0c;控制阀出口流量大小&#xff0c;并且采用压力补偿原理&#xff0c;保证输出流量大小不受负载压力影响维持恒定;该…

低代码平台实用吗?有哪些大型企业在用低代码?

一、目前正在使用低代码平台的企业有哪些&#xff1f; &#xff08;例举一些各行业规模较大的企业&#xff09; 制造行业&#xff1a;施耐德电气、吉利汽车、科大能通、伟星集团、远东控股、一汽大众、老板电器、双菱电梯、君乐宝。 建筑行业&#xff1a;中国交建、筑福集团…

【C++STL】“vector“用法 入门必备 超详细

vector用法 什么是vector&#xff1f;vector的使用vector的定义(构造函数)vector iterator 的使用迭代器演示范围for vector 空间增长扩容机制 vector 的增删查改assignvector 迭代器失效问题。 &#x1f340;小结&#x1f340; &#x1f389;博客主页&#xff1a;小智_x0___0x…

关于将Leetcode上代码直接复制到自己环境中的问题

实例代码&#xff08;不考虑代码的优劣性&#xff09;&#xff1a; 注&#xff1a;我用的是一个在线平台的编译器 Problem1 NameError&#xff1a;name ‘List’ is not defined 解决方法&#xff1a;添加下面代码&#xff1a; from typing import ListProblem2 TypeError…

Android Glide预加载preload ,kotlin

Android Glide预加载preload ,kotlin val imageView findViewById<ImageView>(R.id.image_view)Glide.with(this).asBitmap().load(image_file.path).signature(ObjectKey(image_file.path)).addListener(object : RequestListener<Bitmap> {override fun onLoadF…

抓取唯美图库(BeautifulSoup)

使用BeautifulSoup 1、拿到主页面的源代码&#xff0c;然后提取到子页面的简介地址&#xff0c;href 2、通过href拿到子页面的内容。从子页面中找到导图片的下载地址 img -> src 3、下载图片 import requests from bs4 import BeautifulSoupurlhttps://www.umei.cc/bizhi…

qt 闹钟实现

实现一个闹钟 自定义时间 按下开始后 开始计时&#xff0c;结束计时会播报语音 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> #include <QTimerEvent> #include <QDateTime> #include <QTime> #include …

【Leetcode】37.解数独(困难)

一、题目 1、题目描述 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字…

UVM中测试用例的启动

一、命令行指定 ./simv -l simv.log UVM_TESTNAMEmy_case0 其中 UVM_TESTNAMEmy_case0 中的my_case0就是测试用例的名字 二、文件结构 在test文件夹中my_case0.sv对应case的名字 三、文件说明 3.1 my_case0.sv 其中其他都是写死的&#xff0c;只有红框的部分根据具体的代码…

温度反转效应Temperature Inversion(载流子迁移率与过阈值电压 谁占主导)

In general, as temperature increases, the delay of standard cells increases because of mobility degradation at higher temperatures.    But in lower technology nodes the impact of temperature on the delay of the cell is inverse. In lower nodes, the delay …

上海亚商投顾:沪指维持震荡 光伏等新能源赛道走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 大小指数今日集体反弹&#xff0c;沪指高开后维持震荡走势&#xff0c;创业板指盘中涨超2%&#xff0c;午后涨幅有…

ts开发npm依赖包(插件)demo

序&#xff1a;涉及如下几个点 1、用js开发依赖包&#xff08;换个说法&#xff1a;你在开发第三方的\node_modules的插件了&#xff09; 2、用ts开发依赖包 3、解决本地开发的npm包重命名后不生效的问题 一、js版&#xff08;简单的&#xff09; 你直接在你的项目的\node_mod…

ndp48-web.exe_ndp48-x86-x64-allos-enu.exe_ndp48-x86-x64-allos-chs.exe下载地址

ndp48-web.exe、ndp48-x86-x64-allos-enu.exe、ndp48-x86-x64-allos-chs.exe下载地址 我发现网上几乎找不到地方直接下载&#xff0c;费了我九牛二虎的搜商&#xff0c;才发现原来可以这么下载。 我们可以去微软官方地址下载&#xff1a;下载 .NET Framework 4.8

react 利用antd-mobile实现楼层效果

首先是js模块 import React, { useEffect, useRef, useState } from react import { SideBar } from antd-mobile import ./louceng.css import { useThrottleFn } from ahooksconst items [{ key: 1, title: 第一项, text: <div>12313212313第一项12313212313第一项1…

图床项目之公网发布和测试

项目发布和测试 一、http服务测试1.1、ab http压力测试1.2、post测试&#xff08;注册请求和登录请求&#xff09; 二、性能测试2.1、生成测试脚本2.2、上传测试2.2.1、单客户端测试本地上传到本机服务器2.2.2、如果使用集群的方式进行测试 2.3、下载测试2.4、删除测试2.5、测试…

Vivado2018.3安装教程

1 下载安装包 这个软件是免费的&#xff0c;去官网注册即可完成下载。 https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/archive.html 2 解压安装包 注意&#xff1a;安装包需要解压到一个全英文路径 3 安装 1.双…

linux与windows趣味谈

文章目录 前言linux&windows两者常见的系统版本系统安装版本选择linux和windows使用体验聊聊折腾收获Linux系统使用技巧 前言 windows和linux同为常见的操作系统&#xff0c;相信大部分人对widows比较熟悉一点&#xff0c;对linux比较陌生一点儿。但相信&#xff0c;作为程…

如何利用MES管理系统做到车间可视化管理

车间可视化管理是提高生产效率和质量的关键一环。而MES生产管理系统能够为企业提供车间实时数据监控、生产计划管理、异常处理等功能&#xff0c;帮助企业实现车间可视化管理。本文将介绍如何利用MES生产管理系统做到车间可视化管理&#xff0c;包括数据采集、数据分析、实时监…