redis基础(三十六)

这篇具有很好参考价值的文章主要介绍了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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

(二)RPM安装

   安装repl源

yum install -y epel-release

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

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

yum install -y redis

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     启动redis(任选其一即可)

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

    默认监听127.0.0.1地址

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

三、目录结构

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

rpm  -ql redis

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

         主配置文件

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文件的存储目录
appendonly AOF的启停
appendfilename 定义AOF持久化文件的名称
appendfsync 定义AOF数据同步间隔
requirepass  设置登录redis的密码

          哨兵模式配置文件

vim /etc/redis-sentinel.conf 

         持久化文件存储目录

cd /var/lib/redis

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

          日志文件存储目录

cd /var/log/redis

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

         PID文件存储目录

cd /var/run/redis

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

四、命令解析

        redis启动命令

redis-server 配置文件目录

        redis登录命令

redis-cli

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

命令选项

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

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

 命令使用方式

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

        检查RDB文件 

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

 内容解析:

[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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

1、发现问题

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

2、解决办法

    使用redis-server /opt/redis_6380.conf 

redis-server /opt/redis_6380.conf 

 此时发现进程为前台进程,影响操作redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

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

vim /etc/redis.conf

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

 再次输入命令进行检查

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

 检查监听端口进行查看redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

六、数据库操作

(一)登录数据库

    本地登录

        监听回环地址(127.0.0.1)

redis-cli

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

         监听本地网卡地址

            redis-cli -h IP -p 端口号

redis-cli -h 192.168.41.130 -p 6379

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

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

    远程登录

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

(二)帮助信息

1、help 命令字

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

2、tab补齐

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

(三)库操作

1、切换

select 1

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

(四)数据操作

    set        设置键值对

        set key value

set name zn

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     keys

        keys *            查看所有键的名称

keys * 

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

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

keys name

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     get

        取出键值对

get name

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

         get 键

        键不存在则返回空

get aaa

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     del

        删除键值对        del key

del name

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

del aaa

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

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

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

flushall

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     rename        重命名键名称

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

        rename oldkey newkey

rename zn zm

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     renamenx        重命名键名称

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

        renamenx oldkey newkey

renamenx zm zn

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     move

        移动键值对到指定数据库

        move key dbnumber

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

move zn 0

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     ttl

        查看键值对的生命周期

        ttl key

            -1                永久

            -2                已过期

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

     expire

        设置键值对的存储周期

        expire key seconds

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

七、redis持久化

(一)RDB模式

    默认持久化

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

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

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

(二)AOF模式

    默认关闭,需手动打开

vim /etc/redis.conf 

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

        可以与RDB同时使用 

 重启服务

systemctl restart redis

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

set aaa 123123

 redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

        默认进程启动时读取        appendonly  yes

redis基础(三十六),云计算运维学习,redis,数据库,缓存,linux,运维,学习

 内容解析:

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

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

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

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

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

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

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

aaa: 这是一个键名。

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

123123: 这是一个值。文章来源地址https://www.toymoban.com/news/detail-634616.html

到了这里,关于redis基础(三十六)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt基础之三十六:异常处理

    本文将介绍如何在Qt中使用try...catch和调试dump文件来处理异常。 Qt版本5.12.6 一段简单的捕获异常的代码,新建一个控制台工程,pro文件不用修改 输出:CSDN:Cao Shang Pa QT_THROW那行如果改成:QT_THROW(\\\"CSDN:Cao Shang Pa\\\"); 输出:Unknown Exception 这是因为异常是强类型的,在catch异常的时候

    2024年02月07日
    浏览(46)
  • 数据库工程师基础学习13,14,15----云计算,数据库主流应用技术,专利

    1,云计算与大数据处理 这里的是:按需访问,资源池模型.可用来申请服务器,网络等.无限扩展的存储. 这里公有云与私有云对应,一个面向大众,一个面向私人. 社区云,如学校网,只提供给特定组织使用. 这里主要是:云计算开发商提供的东西不同. 1)主要是基础设施提供 2)主要

    2024年02月05日
    浏览(41)
  • 前端基础(三十六):读取本地音视频设备并进行播放

    请求媒体输入和输出设备的列表,例如麦克风,摄像机,耳机设备等 会提示用户给予使用媒体输入的许可,媒体输入会产生一个MediaStream,里面包含了请求的媒体类型的轨道。此流可以包含一个视频轨道(来自硬件或者虚拟视频源,比如相机、视频采集设备和屏幕共享服务等

    2024年02月15日
    浏览(50)
  • 【JavaSE】Java基础语法(三十六):File & IO流

    java.io.File类是文件和目录路径名的抽象表示形式,主要用于文件和目录的创建、查找和删除等操作。 File:它是文件和目录路径名的抽象表示 文件和目录可以通过File封装成对象 File封装的对象仅仅是一个路径名。它可以是存在的,也可以是不存在的。 | 方法名 | 说明 | | —

    2024年02月07日
    浏览(42)
  • 【前端知识】React 基础巩固(三十六)——RTK中的异步操作

    引入RTK中的createAsyncThunk,在extraReducers中监听执行状态 在界面中引入所需的异步操作Action 查看运行结果 extraReducer还可以传入一个函数,函数接受一个builder参数: 查看运行结果,与之前的写法结果一致

    2024年02月15日
    浏览(48)
  • 小白带你学习linux的mysql数据库备份(三十)

    目录 一、概述 二、数据备份的重要性 三、造成数据丢失的原因 四、备份类型 1、物理与逻辑角度 1.1物理备份 1.2冷备份 1.3热备份 1.4逻辑备份 2、数据库备份策略角度 1.1完整备份 1.2增量备份 五、常见的备份方法 1、物理备份 2、使用专用备份工具 3、通过启用二进制日志增量

    2024年02月03日
    浏览(51)
  • 云计算学习7——云计算OpenStack运维基础

    声明:原创作品,严禁用于商业目的。 如有任何技术问题,欢迎和我交流:408797506(微信同号)。 介绍OpenStack运维的基础知识,主要分析OpenStack云平台运维中的nova、neutron、cinder、swift、Ceilometer、防火墙等服务组件操作。 1.在openstack私有云平台上,基于cirrors.qcow2镜像,使用

    2024年02月01日
    浏览(37)
  • 《QT从基础到进阶·三十六》QWidget实现收缩栏的效果

    功能: 1、可以在收缩栏插件中添加界面 2、可以把界面展开或收缩 3、可以用鼠标拖动界面改变界面的排放顺序 1、可以在收缩栏插件中添加界面 参数1:插入的界面指针 参数2:插入的界面标题 参数3:插入的界面图标 demo: 在收缩栏插件中添加两个界面 2、界面展开或收缩

    2024年02月05日
    浏览(67)
  • ROS学习第三十六节——Gazebo仿真环境搭建

    1.1加入环境模型 在工程文件中创建worlds文件夹,并把之前下载的box_house.world文件放入  1.2编写launch文件 deamo03_car_world.launch 2.1启动 Gazebo 并添加组件 2.2保存仿真环境 添加完毕后,选择 file --- Save World as 选择保存路径(功能包下: worlds 目录),文件名自定义,后缀名设置为 .worl

    2023年04月24日
    浏览(38)
  • 从零开始学习 Java:简单易懂的入门指南之线程池(三十六)

    当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态。线程对象在不同的时期有不同的状态。那么Java中的线程存在哪几种状态呢?Java中的线程 状态被定义在了java.lang.Thread.State枚举类中,State枚举类的源码如下: 通过源码我们可以看到Ja

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包