redis基础(三十六)

news2024/10/7 16:24:37

安装redis、配置redis

目录

一、 概述

(一)NoSQL

1、类型

2、应用场景

(二)Redis

二、安装

(一)编译安装

(二)RPM安装

三、目录结构

四、命令解析

五、redis登录更改

1、发现问题

2、解决办法

六、数据库操作

(一)登录数据库

(二)帮助信息

1、help 命令字

2、tab补齐

(三)库操作

1、切换

(四)数据操作

七、redis持久化

(一)RDB模式

(二)AOF模式


一、 概述

(一)NoSQL

       NoSQL(Not Only SQL)是一种非关系型数据库(Non-Relational Database),与传统的关系型数据库(SQL)相对应。NoSQL数据库以灵活的模式和可伸缩性为特点,适用于大规模数据的存储和处理

       与关系型数据库不同,NoSQL数据库不使用固定的表格和预定义的模式,而是使用动态的模式和灵活的数据模型。这意味着在NoSQL数据库中,可以存储不同结构和类型的数据,并且可以根据需求随时更改模式,而不需要进行预定义的表定义和模式修改

       NoSQL数据库的设计目标是提供高性能、高可用性和可伸缩性。它们通常采用分布式架构,可以在多个服务器上分布数据,并以水平扩展的方式处理大量的读写操作。

       NoSQL数据库被广泛应用于互联网大数据领域,适用于需要处理海量数据和实时数据的场景,例如社交媒体、物联网、日志分析等。常见的NoSQL数据库包括MongoDBCassandraRedisCouchbase等。

1、类型

文档型数据库(Document-oriented database)MongoDB
Couchbase
Apache CouchDB
RethinkDB
列族数据库(Column-family database)Apache Cassandra
Apache HBase
ScyllaDB
图形数据库(Graph database)Neo4j
Amazon Neptune
Microsoft Azure Cosmos DB (Graph API)
键值对数据库(Key-value database)Redis
Riak
CouchDB
对象数据库(Object-oriented database)ObjectDB
db4o
Versant Object Database

2、应用场景

        缓存:Redis最常用的应用场景就是缓存,它可以缓存各种类型的数据,如数据库查询结果、API返回结果等,以提高应用程序的响应速度和并发性能。

        分布式锁:Redis的分布式锁可以确保在分布式系统中对某个资源的互斥访问,避免多个节点出现并发操作的问题。

        计数器:Redis支持对计数器的操作,能够方便地实现各种计数器的功能,如网站访问次数计数、订单数量计数等。

        会话管理:Redis可以用来管理会话信息,实现会话的状态存储和共享,避免了单点故障的问题。

        消息队列:Redis支持发布订阅模式,可以作为一个轻量级的消息队列使用,实现异步消息处理和任务派发等功能。

(二)Redis

       Redis [Remote Dictionary Server] 是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

       基本的键值对操作,Redis还支持丰富的功能,如发布/订阅(pub/sub)模式、事务、Lua脚本、分布式锁等。它还可以作为缓存层,提供高速缓存以加快应用程序的性能。

       Redis被广泛应用于互联网领域,用于缓存、会话存储、消息队列、实时分析、计数器等场景。它的简单性和高性能使得它成为许多应用程序的首选数据存储解决方案。

    英文官网(官方高版本)

https://redis.io/

    中文官网(版本相对较低)

https://www.redis.net.cn/

    监听端口号        6379

    软件包               redis

    数据类型

        字符串(string)

        哈希值(hash)

        列表(list)

        集合(set)

        有序集合(sorted set)

        位图(bitmap)

        hyperloglogs

二、安装

(一)编译安装

wget http://download.redis.io/releases/redis-5.0.8.tar.gz
make && make install

(二)RPM安装

   安装repl源

yum install -y epel-release

 此命令数输入两次为升级repl源 

yum install -y redis

     启动redis(任选其一即可)

systemctl start redis
redis-server /etc/redis.conf

    默认监听127.0.0.1地址

三、目录结构

查看已安装软件包的安装路径及生成的文件

rpm  -ql redis

         主配置文件

vim /etc/redis.conf

         常用主配置文件解析

bind 127.0.0.1监听地址
port 6379监听端口号
daemonize是否将程序或进程转变为守护进程,在后台运行
pidfile

指定通过该配置文件启动 reids进程后的PID文件名称

loglevel定义日志级别
logfile定义日志存储路径
databases指定默认数据库数量
save定义单位时间内key的改变次数
dbfilename定义存储RDB持久化数据的文件名称
dir定义RDB与AOF文件的存储目录
appendonlyAOF的启停
appendfilename定义AOF持久化文件的名称
appendfsync定义AOF数据同步间隔
requirepass 设置登录redis的密码

          哨兵模式配置文件

vim /etc/redis-sentinel.conf 

         持久化文件存储目录

cd /var/lib/redis

          日志文件存储目录

cd /var/log/redis

         PID文件存储目录

cd /var/run/redis

四、命令解析

        redis启动命令

redis-server 配置文件目录

        redis登录命令

redis-cli

命令选项

-hredis服务器IP
-p指定访问端口号
-a指定登录密码
-n指定数据库编号

-a 指定登录密码的配置文件设置在/etc/redis.conf

 命令使用方式

redis-cli -h 192.168.41.130 -p 6379 -a 123123 -n 1

       注:如果端口号为默认端口,可以不进行指定;密码可-a输入,也可进入后auth 123123 输入密码;-n端口为0~16 ,共17个数据库。

        检查RDB文件 

redis-check-rdb
redis-check-rdb /var/lib/redis/dump.rdb

 内容解析:

[offset 0] Checking RDB file /var/lib/redis/dump.rdb:开始检查RDB文件/var/lib/redis/dump.rdb

[offset 27] AUX FIELD redis-ver = '3.2.12'redis-ver是RDB文件中的一个辅助字段,指示Redis的版本号为3.2.12。

[offset 41] AUX FIELD redis-bits = '64'redis-bits是RDB文件中的一个辅助字段,指示Redis的位数为64位。

[offset 53] AUX FIELD ctime = '1691495331'ctime是RDB文件中的一个辅助字段,指示创建RDB文件的时间(Unix时间戳)。

[offset 68] AUX FIELD used-mem = '754984'used-mem是RDB文件中的一个辅助字段,指示在创建RDB文件时Redis使用的内存量。

[offset 70] Selecting DB ID 0:选择了数据库ID为0的数据库。

[offset 98] Checksum OK:RDB文件的校验和是正确的,没有发现数据损坏。

[offset 98] \o/ RDB looks OK! \o/:整个RDB文件的检查没有发现错误,RDB文件看起来是完好的。

[info] 2 keys read:读取了2个键值对。

[info] 0 expires:没有过期的键值对。

[info] 0 already expired:没有已经过期的键值对。

        检查AOF文件

redis-check-aof [--fix] <aof-file>

--fix选项可用于修复AOF文件中的错误。

<aof-file>是AOF文件的路径和名称。 

  1. 首先停止Redis服务器,以确保AOF文件不会被修改。

  2. 使用redis-check-aof命令来检查AOF文件的正确性。命令的使用方式如下:

redis-check-aof /var/lib/redis/appendonly.aof

 注:

  1. 如果使用了--fix选项修复了AOF文件中的错误,建议再次运行redis-check-aof命令来验证修复是否成功。

  2. 确认AOF文件已经正确修复后,可以启动Redis服务器,并将修复后的AOF文件用作持久化文件。

五、redis登录更改

开启从服务需要复制配置文件,更改其监听端口号,理论上可以开设无限个从服务器,更改其监听端口即可(首先需要有一个特别特别好的电脑配置,不然不建议尝试,系统会崩)

cp /etc/redis.conf /opt/redis_6380.conf

1、发现问题

    更改完port后,systemctl启动redis异常

2、解决办法

    使用redis-server /opt/redis_6380.conf 

redis-server /opt/redis_6380.conf 

 此时发现进程为前台进程,影响操作

     若要redis后台运行需修改配置文件,将daemonize的值改为yes

vim /etc/redis.conf

 

 再次输入命令进行检查

 检查监听端口进行查看

六、数据库操作

(一)登录数据库

    本地登录

        监听回环地址(127.0.0.1)

redis-cli

 

         监听本地网卡地址

            redis-cli -h IP -p 端口号

redis-cli -h 192.168.41.130 -p 6379

 此时因为更改过redis 的监听地址,在使用时则会进行报错。需添加IP地址和监听端口。(监听端口前文已经说过,再次不在过多追述)

    远程登录

redis-cli -h 192.168.41.130 -p 6379 -n 0

(二)帮助信息

1、help 命令字

 

2、tab补齐

(三)库操作

1、切换

select 1

 

(四)数据操作

    set        设置键值对

        set key value

set name zn

 

     keys

        keys *            查看所有键的名称

keys * 

 

         keys 键名称            查看一个键是否存在

keys name

 

     get

        取出键值对

get name

 

         get 键

        键不存在则返回空

get aaa

     del

        删除键值对        del key

del name

del aaa

 如果成功则返回结果为1,不成功则为0。这里我们没有创建aaa的键,所以返回结果为0。

     flushall        清空所有数据库中的数据

flushall

     rename        重命名键名称

        不论更名后的键是否存在都会覆盖原有键,并将改名前的键的值赋予改名后的键

        rename oldkey newkey

rename zn zm

     renamenx        重命名键名称

        假如改名后键名称存在则更改不成功

        renamenx oldkey newkey

renamenx zm zn

     move

        移动键值对到指定数据库

        move key dbnumber

        假如目标数据库中存在同名键则移动失败

move zn 0

 

     ttl

        查看键值对的生命周期

        ttl key

            -1                永久

            -2                已过期

     expire

        设置键值对的存储周期

        expire key seconds

 

七、redis持久化

(一)RDB模式

    默认持久化

    /var/lib/redis/dump.rdb        数据库启动时会读取

触发条件redis进程退出宕机
redis程序崩溃
手动保存(触发RDB)save

(二)AOF模式

    默认关闭,需手动打开

vim /etc/redis.conf 

        可以与RDB同时使用 

 重启服务

systemctl restart redis

 去数据库添加内容,而后返回查看

set aaa 123123

 

        默认进程启动时读取        appendonly  yes

 内容解析:

$6: 这是一个长度字段,表示后面的字符串的长度为6个字节。

SELECT: 这是一个Redis命令,表示切换到指定的数据库。在这里,它表示切换到数据库0。

$11: 这是一个长度字段,表示后面的字符串的长度为11个字节。

*3: 这是一个Redis命令,表示执行一个命令组,后面跟着3个命令。

$3: 这是一个长度字段,表示后面的字符串的长度为3个字节。

set: 这是一个Redis命令,表示设置一个键值对。

$3: 这是一个长度字段,表示后面的字符串的长度为3个字节。

aaa: 这是一个键名。

$6: 这是一个长度字段,表示后面的字符串的长度为6个字节。

123123: 这是一个值。

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

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

相关文章

三层交换实验

前言 在实际的企业应用中&#xff0c;我们会先建立不同的vlan把用户先隔开来。然后再通过三次交换机技术打通vlan直接的网络。 这样的目的如下&#xff1a; 隔离&#xff1a; 隔离是广播域&#xff0c;也就是隔离的是故障连通&#xff1a; 连通的是正常的通信 比如校园网&am…

在魔塔社区搭建通义千问-7B(Qwen-7B)流程

复制以下语句 python3 -m venv myvenvsource myvenv/bin/activatepip install modelscope pip install transformers_stream_generator pip install transformers pip install tiktoken pip install accelerate pip install bitsandbytestouch run.py vi run.py复制下面代码粘…

IMV5.0

背景内容&#xff1a; 经历了多个版本&#xff0c;基础内容在前面&#xff0c;可以使用之前的基础环境&#xff1a; v1&#xff1a; https://blog.csdn.net/wtt234/article/details/132139454 v2&#xff1a; https://blog.csdn.net/wtt234/article/details/132144907 v3&#…

04-8_Qt 5.9 C++开发指南_QTableWidget的使用

文章目录 1. QTableWidget概述2. 源码2.1 可视化UI设计2.2 程序框架2.3 qwintspindelegate.h2.4 qwintspindelegate.cpp2.5 mainwindow.h2.6 mainwindow.cpp 1. QTableWidget概述 QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget 组件后,可以在 PropertyEditor…

二、 MySQL 内部技术架构

二、 MySQL 内部技术架构 047 Mysql内部支持缓存查询吗&#xff1f; 当MySQL接收到客户端的查询SQL之后&#xff0c;仅仅只需要对其进行相应的权限验证之后&#xff0c;就会通过Query Cache来查找结果&#xff0c;甚至都不需要经过Optimizer模块进行执行计划的分析优化&…

产品缺陷管理软件:了解功能与选择要点

在现代社会&#xff0c;产品缺陷管理软件已经成为了各个行业必不可少的工具。它可以帮助企业更好地管理和解决产品中存在的缺陷问题&#xff0c;提高产品质量和客户满意度。然而&#xff0c;市场上存在着众多的产品缺陷管理软件&#xff0c;如何选择一款好用、适合自己的软件成…

Java实现数字加密

Java实现数字加密 需求分析代码实现小结Time 需求分析 1.首先&#xff0c;考虑方法是否需要接收数据处理&#xff1f; 需要一个4位数&#xff0c;至于是哪一个数&#xff0c;让方法的调用者传递。 所以&#xff0c;方法的参数&#xff0c;就是这个需要加密的四位数 2.接着&…

Unity 编辑器资源导入处理函数 OnPostprocessAudio :深入解析与实用案例

Unity 编辑器资源导入处理函数 OnPostprocessAudio 用法 点击封面跳转下载页面 简介 在Unity中&#xff0c;我们可以使用编辑器资源导入处理函数&#xff08;OnPostprocessAudio&#xff09;来自定义处理音频资源的导入过程。这个函数是继承自AssetPostprocessor类的&#xff…

电压信号转电流信号

用运算放大器配置电流&#xff0c;使其既能做同相放大电路&#xff0c;也能把电压转化为电流信号 1、当SW1断开情况下&#xff0c;OUT的电压仅受U1.3产生的同相放大电路有关&#xff0c;把0-3V输入转换成0-10V 2、当SW1闭合时 设输入INT的电压信号为Vi&#xff0c;负载电阻R8的…

04-7_Qt 5.9 C++开发指南_QTreeWidget和QDockWidget

文章目录 1. 实例功能简述2. 源码2.1 可视化UI设计2.2 mainwindow.h2.3 mainwindow.cpp 1. 实例功能简述 本节介绍 QTreeWidget、QDockWidget 的使用&#xff0c;以及用 QLabel 显示图片的方法。实例 samp4_8以QTreeWidget 为主要组件&#xff0c;创建一个照片管理器&#xff…

分享:2023新手做闲鱼电商如何轻松过万。详细步骤分享

科思创业汇 大家好&#xff0c;这里是科思创业汇&#xff0c;一个轻资产创业孵化平台。赚钱的方式有很多种&#xff0c;我希望在科思创业汇能够给你带来最快乐的那一种&#xff01; 如果一个人想赚很多钱&#xff0c;他必须学会从小钱开始。如果他想赚一点钱&#xff0c;他必…

springboot(2)

springmvc 把软件系统分为3个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器 &#xff08;Controller&#xff09;。 模型&#xff08;Model&#xff09;&#xff1a;Model是由一个实体Bean实现的&#xff0c;是数据的载体…

Modbus TCP转Profibus DP网关modbus tcp报文解析

捷米JM-DPM-TCP网关。在Profibus总线侧作为主站&#xff0c;在以太网侧作为ModbusTcp服务器功能&#xff0c; 下面是介绍捷米JM-DPM-TCP主站网关组态工具的配置方法 2, Profibus主站组态工具安装 执行资料光盘中的安装文件setup64.exe或setup.exe安装组态工具。安装过程中一直…

画原型只需6招,快速成原型图!

画原型图&#xff0c;是产品设计过程中的重头戏。一个优秀的原型图&#xff0c;能把设计理念以视觉的形式呈现出来&#xff0c;让团队感受产品的交互和体验&#xff0c;明确下一步要做什么。那么&#xff0c;怎样才能画出高质量的原型图呢&#xff1f;下面就来介绍几招实用的技…

文件传输软件的市场现状和未来趋势

文件传输软件是一种能够在不同计算机之间高效、便捷、安全地传送各种类型的文件的应用软件。它是计算机领域中的一项重要技术&#xff0c;涉及到网络通信、数据加密、文件管理等多个方面。随着互联网和移动互联网的发展&#xff0c;文件传输软件的市场需求也日益增大&#xff0…

每日汇评:在50日移动均线下方,黄金的下行势头依然强劲

1、黄金价格连续第二天下跌&#xff0c;美元在周五的抛售后恢复稳定&#xff1b; 2、在中国和美国公布关键通胀数据之前&#xff0c;投资者保持谨慎&#xff1b; 3、在日相对强弱指数(RSI)偏弱的情况下&#xff0c;金价在持续跌破1925美元的情况下&#xff0c;可能跌至1910美…

嵌入式开发学习(STC51-3-点亮led)

内容 点亮第一个led&#xff1b; led闪烁&#xff1b; led流水灯&#xff1b; led简介 led即发光二极管&#xff0c;它具有单向导电性&#xff0c;通过5mA左右电流即可发光&#xff0c;电流越大&#xff0c;其亮度越强&#xff0c;但若电流过大&#xff0c;会烧毁二极管&…

Matplotlib引领数据图表绘制

Matplotlib引领数据图表绘制 前言图像得组成画图设置 figure设置标题设置坐标轴设置 label 和 legend添加注释使用子图中文乱码解决保存图形显示图形条形图直方图散点图饼状图 总结 前言 在数据科学领域&#xff0c;数据可视化是一种强大的工具&#xff0c;能够将复杂的数据转…

Redis单机,主从,哨兵,集群四大模式

Redis 单机模式 Redis 单机模式是指 Redis 数据库在单个服务器上以独立的、单一的进程运行的模式。在这种模式下&#xff0c;Redis 不涉及数据分片或集群配置&#xff0c;所有的数据和操作都在一个实例中进行。以下是关于 Redis 单机模式的详细介绍&#xff1a; 单一实例&#…

数据连接,图文档与BOM数据紧密相连

在现代制造业的产品开发和生产过程中&#xff0c;图文档和BOM数据是不可或缺的重要信息。图文档记录了产品的设计和工程数据&#xff0c;而BOM数据明确了产品所需物料的清单和规格。然而&#xff0c;由于图文档和BOM数据分属不同的系统&#xff0c;数据之间的连接和共享往往成为…