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: 这是一个值。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wjy¹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值