Redis学习笔记--001

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.mzph.cn/news/84379.shtml

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

相关文章

软件项目开发的流程及关键点

软件项目开发的流程及关键点 graph LR A[需求分析] --> B[系统设计] B --> C[编码开发] C --> D[测试验证] D --> E[部署上线] E --> F[运维支持]在项目开发的流程中,首先是进行需求分析,明确项目的目标和功能要求。接下来是系统设计&am…

【Vue.js】vue-cli搭建SPA项目并实现路由与嵌套路由---详细讲解

一,何为SPA SPA(Single Page Application)是一种 Web 应用程序的开发模式,它通过使用 AJAX 技术从服务器异步加载数据,动态地更新页面内容,实现在同一个页面内切换不同的视图,而无需整页刷新 1.…

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

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

爬虫 — App 爬虫(一)

目录 一、介绍二、APP 爬虫常见反爬三、APP 抓包常用工具四、模拟器五、安装 APP1、下载 APP2、安装 APP 六、fiddler1、工作原理2、安装3、基本介绍 七、环境配置1、fiddler 的配置2、夜神模拟器的配置 八、案例 一、介绍 爬虫分类——数据来源 1、PC 端爬虫(网页…

Multisim14.0仿真(二十)74LS161 4位同步二进制加法计数器

一、仿真原理图: 二、仿真效果图:

云计算的未来:云原生架构和自动化运维的崭露头角

文章目录 云计算的演进云原生架构1. 容器化2. 微服务3. 自动化部署和扩展4. 故障恢复 自动化运维1. 基础设施即代码(IaC)2. 运维自动化示例:使用Ansible自动化配置管理 3. 自动化监控和报警 未来展望1. 更多的自动化2. 多云混合云3. 边缘计算…

《DevOps实践指南》- 读书笔记(九)

DevOps实践指南 25. 附录附录 1 DevOps 的大融合精益运动敏捷运动Velocity 大会运动敏捷基础设施运动持续交付运动丰田套路运动精益创业运动精益用户体验运动Rugged Computing 运动 附录 2 约束理论和核心的长期冲突附录 3 恶性循环列表附录 4 交接和队列的危害附录 5 工业安全…

如何向PDB文件添加双键

在用PDB文件进行分子绘图的时候(制作OBJ),发现像Atomic blender插件和PDB本身并不支持双键,需要对PDB文件进行修改,参照的该yt链接https://www.youtube.com/watch?vYNoow7qkwFA&t364s&ab_channelEdvinFako 即…

由于找不到d3dx9_43.dll,无法继续执行代码要怎么解决

D3DX9_43.dll是一个动态链接库文件,它是DirectX的一个组件,主要用于支持一些旧版本的游戏和软件。当电脑缺少这个文件时,可能会导致这些游戏和软件无法正常运行。例如,一些老游戏可能需要D3DX9_43.dll来支持图形渲染等功能。此外&…

需求是怎么一步一步变态的

最初的需求 需求是处理一些数据,数据例子: 而界面要显示的样子: 看起来不太难,可以分解出需求: 每一列的所有数据要都能参与选择,或者输入当一个参数选中之后,比如选中A选中1,则…

Jenkins用户管理(二):不同用户分配不同的任务访问权限

需求:不同用户访问到不同的Jenkins任务。 依赖插件:Role-based Authorization Strategy 1. 插件安装 进入【系统管理】-【插件管理】-【可用插件】,搜索Role-based Authorization Strategy进行安装,随后重启jenkins 2. 全局安全配置 进入【系统管理】-【全局安全配置】,【…

K8S:Pod容器中的存储方式及PV、PVC

文章目录 Pod容器中的存储方式一.emptyDir存储卷1.emptyDir存储卷概念2.emptyDir存储卷示例 二.hostPath存储卷1.hostPath存储卷概念2.hostPath存储卷示例 三.nfs共享存储卷1.nfs共享存储卷示例 四.PV和PVC1.PV、PVC概念2.PVC 的使用逻辑及数据流向3.storageclass插…

自动化测试:yaml结合ddt实现数据驱动!

在pythonunittestseleniumddt的框架中,数据驱动常见有以下几种方式实现: Csv/txtExcelYAML 本文主要给大家介绍测试数据存储在YAML文件中的使用场景。首先先来简单介绍一下YAML。 1. 什么是YAML 一种标记语言类似YAML,它实质上是一种通用…

git安装配置教程

目录 git安装配置1. 安装git2. git 配置3.生成ssh key:4. 获取生产的密钥3. gitee或者github添加ssh-key4.git使用5. git 使用-本地仓库与远程仓库建立连接第一步:进入项目文件夹,初始化本地仓库第二步:建立远程仓库。 建立远程连接的小技巧 …

Git学习笔记9

Gitlab中的代码是要部署到生产服务器上。 CI: Continuous integration 简称CI: 是一种软件开发实践,即开发团队成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都…

多目标优化算法:基于非支配排序的鱼鹰优化算法(NSOOA)MATLAB

一、鱼鹰优化算法 鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovsk于2023年提出,其模拟鱼鹰的捕食行为。 Python:鱼鹰优化算法(Osprey optimization algorithm&a…

新版发布 | Cloudpods v3.10.5 和 v3.9.13 正式发布

Cloudpods v3.10.5 本期发布中,ocboot 部署脚本有较多变化,首先支持以非 root 用户执行安装流程,其次响应社区的呼吁,增加了–stack 参数,允许 Allinone 一键安装仅包含私有云(参数为 edge)或云…

ESP8266 WiFi物联网智能插座—项目简介

目录 1、项目背景 2、设备节点功能 3、上位机功能 物联网虽然能够使家居设备和系统实现自动化、智能化管理,但是依然需要依靠更为先进的终端插座作为根本保障,插座是所有家用电器需要使用的电源设备,插座的有序智能管理,对于实…

服务器免密登录设置

例如服务器A想要免密连接服务器B,需要以下2个步骤 步骤1:在服务器A上执行命令ssh-keygen –t rsa,直接回车,会在默认路径/root/.ssh下生成私钥和公钥 步骤2:将服务器A上生成的公钥id_rsa.pub的内容,复制粘…

进程的管理

#include <unistd.h> void _exit(int status); #include <stdlib.h> void _Exit(int status); status参数&#xff1a;是进程退出时的状态信息&#xff0c;父进程在回收子进程资源的时候可以获取到 #include<stdio.h> #include<stdlib.h> #includ…