Redis学习笔记--001

news2024/11/24 14:49:49

Redis快速入门

文章目录

  • Redis快速入门
  • 一、初识Redis
    • 1.1、NoSQL数据库
    • 1.2、Redis介绍
    • 1.3、[Redis](https://redis.io/)的安装
  • 二、Redis常见命令
    • 2.1、Redis默认启动
    • 2.2、指定配置启动
    • 2.3、Redis开机自启设置
  • 三、Redis客户端
    • 3.1、Redis命令行客户端
    • 3.2、图形化桌面客户端
  • 四、redis的常用指令
    • 4.1、Redis数据结构介绍
    • 4.2、Redis的通用命令
    • 4.3、Redis各数据类型常用的命令
      • 4.3.1、String类型
      • 4.3.2、key的分级存储
      • 4.3.3、Hash类型
      • 4.3.4、List类型
      • 4.3.5、Set类型
      • 4.3.6、SortedSet类型

一、初识Redis

1.1、NoSQL数据库

在这里插入图片描述

NoSQL数据库Not Only SQL数据库)是一类非关系型数据库,它们采用了不同于传统关系型数据库的数据存储模型。NoSQL数据库旨在解决关系型数据库在某些情况下的限制,如扩展性、灵活性和高可用性。以下是一些常见类型的NoSQL数据库以及它们的主要特点:

  • 文档型数据库(Document Databases):特点:文档型数据库存储数据以文档的形式,通常使用JSON或类似的格式。如:MongoDB

  • 键值存储数据库(Key-Value Stores):键值存储数据库通过将数据存储为键值对的方式,提供了快速的数据检索和存储。这种模型适用于需要高速读写操作的应用,如缓存、会话管理和实时分析。如:Redis

  • 图形数据库(Graph Databases):图形数据库专门用于存储和查询图形数据结构,如网络关系、社交网络和知识图谱。这种模型非常适合复杂的数据关系和图形分析.

NoSQL的主要优势:

  • 高扩展性: NoSQL数据库通常支持水平扩展,允许在需要时添加更多的节点和服务器,以应对大规模数据和高并发负载。

  • 灵活的数据模型: NoSQL数据库通常支持动态模式,可以适应不断变化的数据需求,而无需事先定义表结构

  • 高性能: 针对特定用途的NoSQL数据库通常能够提供快速的读写操作,特别是在大规模数据集上。

  • 高可用性: 许多NoSQL数据库提供了内置的复制和故障容忍功能,以确保数据的高可用性。

1.2、Redis介绍

RedisRemote Dictionary Server)是一种开源的高性能内存键值存储数据库系统。它被设计用于处理各种数据结构,包括字符串、哈希表、列表、集合、有序集合等。Redis是一个非常快速、轻量级、持久化、可扩展的NoSQL数据库,经常用于缓存、会话存储、消息队列、实时统计等应用。

特征:

  • 键值型(K-V),value支持多种不同的数据结构,功能丰富
  • 单线程,每个命令具有原子性
  • 低延迟,速度快(基于内存、IO多路复用、良好的编码)。
  • 支持数据持久化(确保安全性
  • 支持主从集群、分片集群

1.3、Redis的安装

推荐使用linux操作系统进行使用

  1. 安装Redis依赖
yum install -y gcc tcl 
#Redis基于c语言编写的,因此首先需要安装Redis所需要的gcc依赖
  1. 下载,解压,编译
#安装wget命令
sudo yum install wget
wget http://download.redis.io/releases/redis-5.0.4.tar.gz # 下载
tar -xzf redis-5.0.4.tar.gz #解压
cd redis-5.0.4
make # 编译
make install #安装 

3 . 默认的安装路径是在/usr/local/bin目录下:

在这里插入图片描述

该目录以及默认配置到环境变量,因此可以在任意目录下运行这些命令

  • redis-cli:是redis提供的命令行客户端
  • redis-server:是redis的服务端启动的脚本
  • redis-sentinel:是redis的哨兵启动的脚本

二、Redis常见命令

2.1、Redis默认启动

安装完成后,在任意目录输入redis-server命令即可启动Redis;

redis-server 

如图
在这里插入图片描述

这种启动属于,会阻塞前台启动整个回话窗口,窗口关闭或者按下CTRL+C则Redis停止。(不推荐使用)

2.2、指定配置启动

  1. 现将redis.config文件进行备份
cp redis.conf redis.conf.bck 
  1. 修改redis.config文件中的一些配置:
# 监听的地址。默认的是127.0.0.1,会导致只能本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
# 守护进程,修改为yes后即可后台运行
daemonize yes
# 密码,设置后访问Redis必须输入密码
requirepass 123321
  1. Redis的其它常见配置
# 监听的端口 
port 6379  # 默认端口号
# 工作目录,默认是当前目录,也就是运行redis-server时的命令,日志、持久化等文件会保存在这个目录
dir .
# 数据库数量,设置为1,代表只使用1一个库,默认有16个库,编号为0-15
database 1
# 设置redis能够使用的最大内存
maxmemory 512mb
# 日志文件,默认为空,不记录日志,可以指定日志文件名
logfile "redis.log"
  1. 启动Redis
# 进入redis安装目录
cd /usr/local/redis-5.0.4
# 启动--以加载配置文件的方式进行启动(后台启动)
redis-server redis.conf
# 查询 redis当前所占的进程
ps -ef | grep redis
# 结束当前进程
kill -9 pid

在这里插入图片描述
5. 停止服务

#  利用redis-cli 来执行 shutdown 命令,即可停止 Redis 服务
# 因为之前配置了密码,因此需要通过 -u 来指定密码
redis-cli -u 123456 shutdown

2.3、Redis开机自启设置

  1. 首先,建立一个系统服务文件:redis.service
vi /etc/systemed/system/redis.service

内容如下

[Unit]
Description=Redis Server
After=network.target

[Service]
type = forking
ExecStart=/usr/local/bin/redis-server /usr/local/redis-5.0.4/redis.conf
PrivateTmp=true
# ExecStop=/usr/local/bin/redis-cli shutdown
# Restart=always

[Install]
WantedBy=multi-user.target

  1. 然后重载系统服务
sudo systemctl daemon-reload
  1. 启用Redis服务自启动
    使用以下命令启用Redis服务自启动:
sudo systemctl enable redis
  1. 启动redis
# 通过start启动redis
systemctl start redis
  1. 查看redis状态
systemctl status redis

在这里插入图片描述

  1. 停止redis
systemctl syop redis

三、Redis客户端

3.1、Redis命令行客户端

Redis安装完成后自带了命令行客户端:redis-cli,使用方式如下:

redis-cli [options] [commonds]
# 进入命令端
redis-cli -a 123456 -p 6379

其中常见的options:

  • -h 127.0.0.1:指定要连接redis节点的IP地址,默认是127.0.0.1
  • -p 6379:指定要连接的redis节点的端口,默认是6379
  • -a 123456:指定redis的访问密码

其中的commonds就是Redis的操作命令,例如:

  • ping:与redis服务器做心跳测试,服务器正常返回 pong

在这里插入图片描述

3.2、图形化桌面客户端

RESP软件

四、redis的常用指令

4.1、Redis数据结构介绍

Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:

在这里插入图片描述

4.2、Redis的通用命令

命令文档

  1. help命令
# help帮助文档 
help @[结构类型]           #如:help @string
help del  #查询del命令的操作语法
  1. keys命令

查询当前的key

keys : #查看符合模版的所有keys   网址https://redis.io/commands/keys/
keys *name*  #键值中有name的都返回 *表示多个占位符
keys a?? # ?表示一个占位符
keys *   #返回所有的键值
  1. del命令

删除指定键值的k-v

在这里插入图片描述
4. exists命令

判断指定key是否存在
在这里插入图片描述

  1. expire命令和TTL命令

expire命令:给key设置一个有效期
TTL命令: 查看一个Key的剩余有效期

在这里插入图片描述

4.3、Redis各数据类型常用的命令

4.3.1、String类型

在这里插入图片描述

在这里插入图片描述

4.3.2、key的分级存储

key的结构:
Redis的key允许有多个单词形成层级结构,多个单词之间用∵’隔开,格式如下:

项目名称:业务名:类型:id
这个格式并非是固定的。

在这里插入图片描述
在这里插入图片描述

4.3.3、Hash类型

Hash类型有优点:相比String类型的数据可以对某一个键值进行修改。

在这里插入图片描述

在这里插入图片描述

4.3.4、List类型

在这里插入图片描述
在这里插入图片描述

4.3.5、Set类型

在这里插入图片描述
常见命令
在这里插入图片描述

4.3.6、SortedSet类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Python Opencv实践 - 人脸识别CascadeClassifier

参考资料: 【PythonOpenCV 人脸检测—CascadeClassifier 级联分类器实现】_LPY。的博客-CSDN博客 ‘cv::CascadeClassifier::detectMultiScale‘_只要思想不滑坡办法总比困难多--小鱼干的博客-CSDN博客 import cv2 as cv import matplotlib.pyplot as plt import nu…

陆拾捌- 如何通过数据影响决策(三)

一、如何正确的引导别人? 引导与误导的区别是什么? 看下面这广告图 单看上面大字的结果,感觉好像真的使用过的人均觉得有好处 可如果我们看下面的细字 对111位连续14天食用(本产品)的燕麦片非重度使用者所做调研… 从…

Linux 系统移植(二)--系统调试

文章目录 一、 编译文件系统1.1 下载资源安装包1.2 配置模板ARM64目标平台1.3 配置交叉编译器1.4 配置登录用户名和密码1.5 配置Linux 控制台1.6 配置文件系统格式1.7 编译buildroot文件系统 二、编译ARM64 Linux三、启动 Qemu Linux系统参考链接: 一、 编译文件系统…

React(react18)中组件通信05——react-redux

React(react18)中组件通信05——react-redux 1. 前言1.1 React中组件通信的其他方式1.2 介绍React-Redux1.2.1 简单介绍React-Redux1.2.2 官网 1.3 安装react-redux 2. 简单改写redux的例子2.1 提供store2.2 连接 Components UI组件修改2.2.1 连接 Comp…

Dubbo 3.x源码(11)—Dubbo服务的发布与引用的入口

基于Dubbo 3.1,详细介绍了Dubbo服务的发布与引用的入口的源码。 此前我们学习了Dubbo配置的加载与覆盖的一系列源码: Dubbo 3.x源码(7)—Dubbo配置的加载入口源码Dubbo 3.x源码(8)—Dubbo配置中心的加载与优先级源码Dubbo 3.x源码(9)—Dubbo启动元数据中…

通过 Helm Chart 部署 Easysearch

Easysearch 可以通过 Helm 快速部署了,快来看看吧! Easysearch 的 Chart 仓库地址在这里 https://helm.infinilabs.com。 使用 Helm 部署 Easysearch 有两个前提条件: cert-managerlocal-path 我们先按照 Chart 仓库的说明来快速部署一下…

OpenCV之九宫格图像

将一张图像均等分成九份&#xff0c;然后将这九个小块按一定间隔&#xff08;九宫格效果&#xff09;拷贝到新画布上。效果如下图所示&#xff1a; 源码&#xff1a; #include<iostream> #include<opencv2/opencv.hpp> using namespace std; using namespace cv;i…

基于矩阵分解算法的智能Steam游戏AI推荐系统——深度学习算法应用(含python、ipynb工程源码)+数据集(二)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1&#xff09;定义模型结构2&#xff09;优化损失函数 3. 模型训练及保存1&#xff09;模型训练2&#xff09;模型保存 相关其它博客工程源代码下载其它资料下载 前言 本项目采用了矩阵分…

优维低代码实践:图片和搜索

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

Unity中Shader模板测试使用到的二进制

文章目录 前言&#xff08;接上一篇文章&#xff09;一、模板测试公式1、简化版(在ReadMask默认值的情况下)2、完整版 二、二进制的值1、0 和 1组成2、符号3、二进制的与运算4、二进制和十进制转化 三、在Shader中的实际操作 前言&#xff08;接上一篇文章&#xff09; Unity中…

JimuReport积木报表 v1.6.2 版本正式发布—开源免费的低代码报表

项目介绍 一款免费的数据可视化报表&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完成报…

(Tekla Structures二次开发)获取当前模型文件夹路径

代码如下&#xff1a; TSM.Model model new TSM.Model();if(model.GetConnectionStatus()){ModelInfo modelInfo model.GetInfo();MessageBox.Show(modelInfo.ModelPath); // model.CommitChanges();}运行结果如下&#xff1a;

项目文章 | Plant Commun(IF:10.5)发表附属染色体调节植物-真菌互作从寄生到共生转换的分子作用机制

发表单位&#xff1a;中国林业科学院林木遗传育种国家重点实验室/中国林业科学研究院亚热带林业研究所 发表时间&#xff1a;2023年8月9日 期刊&#xff1a;Plant Communications&#xff08;IF&#xff1a;10.5&#xff09; 2023年8月9日&#xff0c;中国林业科学院林木遗传…

Postman应用——接口请求和响应(Get和Post请求)

文章目录 新增Request请求Get请求Post请求 Request请求响应Postman响应界面说明请求响应另存为示例&#xff08;模板&#xff09;Postman显示的响应数据清空请求响应数据保存到本地文件 这里只讲用的比较多的Get和Post请求方式&#xff0c;也可以遵循restful api接口规范&#…

Centos7部署gitlab

建议服务器配置不低于2C8G 1、安装必要的依赖 sudo yum install -y curl policycoreutils-python openssh-server perl2、配置极狐GitLab 软件源镜像 curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash sudo yum install gitlab-jh -y3、…

Windows下SSH配置多账号

C:\Users\Administrator\.ssh 目录下新建config文件 config文件内容如下 配置了两个账号&#xff0c;举例如下 # github Host github.com HostName github.com IdentityFile ~/.ssh/github_id_rsa PreferredAuthentications publickey# gitee Host gitee.com HostName gitee.…

OR63 删除公共字符

目录 一、题目 二、代码 三、易错 一、题目 删除公共字符_牛客题霸_牛客网 二、代码 #include <iostream> #include <string> using namespace std;int main() {string s1,s2;getline(cin,s1);getline(cin,s2);string s3;int mark 0;//若s1中的字符在s2中不存…

线性调频雷达回波仿真+脉冲压缩仿真

雷达发射的线性调频信号&#xff1a; s ( t ) r e c t ( t τ ) e x p j 2 π f 0 t j π μ t 2 s(t)rect(\frac{t}{\tau})exp{j2\pi f_0tj\pi \mu t^2} s(t)rect(τt​)expj2πf0​tjπμt2 不考虑RCS&#xff0c;假设目标回波的幅度不变&#xff0c;那么目标反射回波可以…

Cpp/Qt-day050921Qt

目录 实现使用数据库的登录注册功能 头文件&#xff1a; registrwidget.h: widget.h: 源文件&#xff1a; registrwidget.c: widget.h: 效果图&#xff1a; 思维导图 实现使用数据库的登录注册功能 头文件&#xff1a; registrwidget.h: #ifndef REGISTRWIDGET_H #de…

爬虫 — 字体反爬

目录 一、安装字体软件 FontCreator二、百度智能云文字识别三、案例一四、案例二五、案例三六、安装 Tesseract1、安装步骤2、配置环境3、使用 Python 识别图片信息 七、案例四 一、安装字体软件 FontCreator 点击下载字体软件 FontCreator 安装包 1、同意协议&#xff0c;点击…