redis基础(三十六)

安装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.mzph.cn/news/35147.shtml

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

相关文章

2023国赛数学建模C题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

中睿天下入选河南省网信系统2023年度网络安全技术支撑单位

近日&#xff0c;河南省委网信办发布了“河南省网信系统2023年度网络安全技术支撑单位名单”&#xff0c;中睿天下凭借出色的网络安全技术能力和优势成功入选。 本次遴选由河南省委网信办会同国家计算机网络与信息安全管理中心河南分中心&#xff08;以下简称安全中心河南分中心…

Zebec Protocol 将进军尼泊尔市场,通过 Zebec Card 推动地区金融平等

流支付正在成为一种全新的支付形态&#xff0c;Zebec Protocol 作为流支付的主要推崇者&#xff0c;正在积极的推动该支付方案向更广泛的应用场景拓展。目前&#xff0c;Zebec Protocol 成功的将流支付应用在薪酬支付领域&#xff0c;并通过收购 WageLink 将其纳入旗下&#xf…

Pytest测试框架3

目录&#xff1a; pytest结合数据驱动-yamlpytest结合数据驱动-excelpytest结合数据驱动-csvpytest结合数据驱动-jsonpytest测试用例生命周期管理&#xff08;一&#xff09;pytest测试用例生命周期管理&#xff08;二&#xff09;pytest测试用例生命周期管理&#xff08;三&a…

UG NX二次开发(C#)-CAM-获取刀具类型

文章目录 1、前言2、UG NX中的刀具类型3、获取刀具类型3.1 刀具类型帮助文档1、前言 在UG NX的加工模块,加工刀具是一个必要的因素,其包括了多种类型的类型,有铣刀、钻刀、车刀、磨刀、成型刀等等,而且每种刀具所包含的信息也各不相同。想获取刀具的信息,那就要知道刀具的…

2023最新水果编曲软件FL Studio 21.1.0.3267音频工作站电脑参考配置单及系统配置要求

音乐在人们心中的地位日益增高&#xff0c;近几年音乐选秀的节目更是层出不穷&#xff0c;喜爱音乐&#xff0c;创作音乐的朋友们也是越来越多&#xff0c;音乐的类型有很多&#xff0c;好比古典&#xff0c;流行&#xff0c;摇滚等等。对新手友好程度基本上在首位&#xff0c;…

【报童模型】随机优化问题二次规划

面对需求的不确定性&#xff0c;报童模型是做库存优化的常见模型。而标准报童模型假设价格是固定的&#xff0c;此时求解一个线性规划问题&#xff0c;可以得到最优订货量&#xff0c;这种模型存在局限性。因为现实世界中价格与需求存在一定的关系&#xff0c;本文假设需求q是价…

LNMP环境介绍和搭建

一.LNMP简介 1.含义 2.工作原理 二.部署LNMP环境 1.Nginx环境 &#xff08;1&#xff09;上传nginx包&#xff0c;下载编译安装工具并解包到指定目录&#xff08;tar 参数 tar包 - C 目录路径&#xff09; &#xff08;2&#xff09; 开始编译安装&#xff0c;每次编译后…

nbcio-boot升级到3.1后出现online表单新增报错

nbcio-boot升级springboot、mybatis-plus和JSQLParser后出现新增online表单的时候报错&#xff0c;如下&#xff1a; 2023-08-13 21:18:01.292 [http-nio-8080-exec-12] [1;31mERROR[0;39m [36mo.jeecg.common.exception.JeecgBootExceptionHandler:69[0;39m - Handler dispat…

【JVM】JVM垃圾收集器

文章目录 什么是JVM垃圾收集器四种垃圾收集器&#xff08;按类型分&#xff09;1.串行垃圾收集器(效率低&#xff09;2.并行垃圾收集器(JDK8默认使用此垃圾回收器&#xff09;3.CMS&#xff08;并发&#xff09;垃圾收集器(只针对老年代垃圾回收的&#xff09;4.G1垃圾回收器(在…

设计模式之七:适配器模式与外观模式

面向对象适配器将一个接口转换成另一个接口&#xff0c;以符合客户的期望。 // 用火鸡来冒充一下鸭子class Duck { public:virtual void quack() 0;virtual void fly() 0; };class Turkey { public:virtual void gobble() 0;virtual void fly() 0; };class TurkeyAdapter :…

Linux 1.2.13 -- IP分片重组源码分析

Linux 1.2.13 -- IP分片重组源码分析 引言为什么需要分片传输层是否存在分段操作IP分片重组源码分析ip_createip_findip_frag_createip_doneip_glueip_freeip_expireip_defragip_rcv 总结 本文源码解析参考: 深入理解TCP/IP协议的实现之ip分片重组 – 基于linux1.2.13 计网理论…

树莓派RP2040 用Arduino IDE安装和编译

目录 1 Arduino IDE 1.1 IDE下载 1.2 安装 arduino mbed os rp2040 boards 2 编程-烧录固件 2.1 打开点灯示例程序 2.2 选择Raspberry Pi Pico开发板 2.3 编译程序 2.4 烧录程序 2.4.1 Raspberry Pi Pico开发板首次烧录提示失败 2.4.2 解决首次下载失败问题 2.4.2.1…

无涯教程-Perl - recv函数

描述 This function receives a message on SOCKET attempting to read LENGTH bytes, placing the data read into variable SCALAR.The FLAGS argument takes the same values as the recvfrom( ) system function, on which the function is based. When communicating wit…

论文浅尝 | 面向多步推理任务专业化较小语言模型

笔记整理&#xff1a;张沈昱&#xff0c;东南大学硕士&#xff0c;研究方向为自然语言处理 链接&#xff1a;https://github.com/FranxYao/FlanT5-CoT-Specialization 动机 本文的动机是探索如何在多步推理任务中通过大型语言模型提升较小的语言模型的性能。作者认为&#xff0…

云开发超多功能工具箱组合微信小程序源码/附带流量主

介绍&#xff1a; 这是一款云开发超多功能工具箱组合微信小程序源码附带流量主功能&#xff0c;小程序内包含了40余个功能&#xff0c;堪称全能工具箱了&#xff0c;大致功能如下&#xff1a; 证件照制作 | 垃圾分类查询 | 个性签名制作 二维码生成丨文字九宫格 | 手持弹幕丨…

使用GraphQL在Postman中进行API测试

GraphQL 是一种用于API的开源数据查询和操作语言&#xff0c;用于API的查询语言和运行时。它使客户端能够精确地指定其数据需求&#xff0c;并获得预测性地结果。GraphQL旨在提高API的效率、灵活性和可靠性。 Postman 是一款用于API开发的强大工具&#xff0c;它支持REST和Gra…

LVS简介及LVS-DR搭建

目录 一. LVS简介&#xff1a; 1.简介 2. LVS工作模式&#xff1a; 3. LVS调度算法&#xff1a; 4. LVS-DR集群介绍&#xff1a; 二.LVS-DR搭建 1.RS配置 1&#xff09;两台RS&#xff0c;需要下载好httpd软件并准备好配置文件 2&#xff09;添加虚拟IP&#xff08;vip&…

Python爬虫——requests_cookie登陆古诗文网

寻找登陆需要的参数 __VIEWSTATE:aiMG0UXAfCzak10C7436ZC/RXoZbM2lDlX1iU/4wjjdUNsW8QUs6W2/3M6XIKagQZrC7ooD8Upj8uCnpQMXjDAp6fS/NM2nGhnKO0KOSXfT3jGHhJAOBouMI3QnlpJCQKPXfVDJPYwh169MGLFC6trY __VIEWSTATEGENERATOR: C93BE1AE from: http://so.gushiwen.cn/user/collect.…

linux 命令--查看网络端口命令

使用 netstat 检查端口 netstat 是一个命令行工具&#xff0c;可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序&#xff0c;用grep管道可以过滤出想要的字段 -a &#xff1a;all&#xff0c;表示列出所有的连接&#xff0c;服务监听&#xff…