小白带你学习linux的Redis基础(三十二)

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: 小白带你学习linux的Redis基础(三十二)



前言

Redis(REmote DIctionary Server)是一个开源的内存数据库,它支持存储和检索键值对。Redis被广泛应用于各种场景,如缓存、消息队列、计数器、分布式锁等。

Redis的特点包括:

  1. 内存数据存储:Redis将所有数据都存储在内存中,以实现快速的读写操作。
  2. 数据持久性:Redis可以将数据持久化到硬盘中,以防止数据丢失。
  3. 多种数据结构支持:Redis支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,使得它可以处理各种不同类型的数据。
  4. 高性能:由于数据存储在内存中,Redis能够以非常高的速度读取和写入数据。
  5. 分布式:Redis支持主从复制和分片,可以实现数据的高可用和横向扩展。
  6. 支持事务:Redis支持简单的事务操作,保证多个操作的原子性。
  7. 发布/订阅模式:Redis支持发布/订阅模式,可以用于实现消息队列。

总之,Redis是一个高性能、灵活和可扩展的数据库,它在许多大规模互联网应用中被广泛使用。

一、概述

1、NoSQL

非关系型数据库

内存存储

类型

文档型数据库(Document-oriented database)如MongoDB;

列族数据库(Column-family database)如HBase、Cassandra等;

图形数据库(Graph database)如Neo4j、ArangoDB等;

键值对数据库(Key-value database)如Redis、Memcached等;

对象数据库(Object-oriented database)如db4o等。

应用场景

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

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

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

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

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

2、Redis

Remote Dictionary Server       远程字典服务

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

内存存储、持久化

键值对存储

监听端口号      6379

数据类型

字符串(string)

哈希值(hash)

列表(list)

集合(set)

位图(bitmap)

二、安装

1、基础配置

关闭防火墙,更改宽容模式,配置IP地址能联通网络

配置IP网卡重启网络

vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network

关闭防火墙,改为宽容模式

systemctl stop firewalld
setenforce 0

能连上网即可

2、编译安装

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

3、RPM安装网络源安装

yum install -y epel-release
yum install -y redis

启动

systemctl start redis
netstat -anptu | grep redis

 默认监听127.0.0.1地址

三、目录结构

1、rpm  -ql redis

2、/etc/redis.conf

主配置文件

bind 127.0.0.1  修改监听地址
port 6379  修改监听端口号
pidfile   指定通过该配置文件启动    reids进程后的PID文件名称
loglevel  定义日志级别
logfile  定义日志存储路径
databases    指定默认数据库数量
save      定义单位时间内key的改变次数
dbfilename  定义存储RDB持久化数据的文件名称
dir 定义RDB与AOF文件的存储目录
 appendonly  AOF的启停
appendfilename 定义AOF持久化文件的名称
appendfsync  定义AOF数据同步间隔
requirepass  设置登录redis的密码

/var/lib/redis                  持久化文件存储目录

/var/log/redis                 日志文件存储目录

/var/run/redis                  PID文件存储目录

四、命令解析

1、redis-server

vim /etc/redis.conf 
cp /etc/redis.conf  /opt/redis_6380.conf
vim /opt/redis_6380.conf 
redis-server /opt/redis_6380.conf 
!net

第一步

第二步cp

第三步port改为6380

第四步redis-server /opt/redis_6380.conf

第五步!net

redis启动命令

2、redis-cli

redis登录命令

-h            redis服务器IP

-p             指定访问端口号

-a             指定登录密码

-n             指定数据库编号

2、redis-check-rdb

检查RDB文件

3、redis-check-aof

检查AOF文件

五、redis登录更改

1、问题

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

2、解决办法

理论上cp这个文件可以开启无限的进程

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

使用redis-server /opt/redis_6380.conf

开启的是前台进程如果要开启后台进程需要进行下一步

若要redis后台运需修改配置文件 daemonize yes

六、数据库操作

1、登录数据库

本地登录         监听回环地址              redis-cli

                      监听本地网卡地址      redis-cli -h IP -p 端口号

远程登录

基本部署条件需要一台服务器和客户端

客户端更改完配置安装软件

服务端需要更改配置文件

vim/etc/redis.conf

systemctl restart redis
netstat -anptu | grep redis

回到客户机输入命令 :redis-cli -h 192.168.28.100

回服务器设置一个密码重启一下服务器

回服务器进一下数据库

比如想换一下库

2、帮助信息

help 命令字

tab补齐

3、库操作

切换           select 数据库编号

4、数据操作

set           设置键值对

               set key value

keys         keys *             查看所有键的名称

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

get             取出键值对

                 get 键

                  键不存在则返回空

del              删除键值对

                   del key

flushall          清空所有数据库中的数据(慎用)

rename         重命名键名称

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

                    rename oldkey newkey

renamenx      重命名键名称

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

                      renamenx oldkey newkey

move             移动键值对到指定数据库

                     move key dbnumber

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

ttl                   查看键值对的生命周期

                     ttl key              -1   永久    -2     已过期

expire         设置键值对的存储周期

                   expire key seconds

七、redis持久化

1、RDB模式

默认持久化

dump.rdb         数据库启动时会读取

触发条件        redis进程退出                      宕机

                                                                  redis程序崩溃

                       手动保存(触发RDB)       save

2、AOF模式

默认关闭

appendonly.aof          默认进程启动时读取

开启           appendonly  yes

数据库创建用户

查看一下文件

开启aof系统就不读取dump.rdb

可以与RDB同时使用

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1天前
|
存储 Linux
Linux的学习之路:16、文件(3)
Linux的学习之路:16、文件(3)
28 0
|
1天前
|
Linux C语言 C++
Linux的学习之路:14、文件(1)
Linux的学习之路:14、文件(1)
25 0
|
1天前
|
NoSQL Linux 网络安全
Linux安装Redis(详细教程)
Linux安装Redis(详细教程)
20 2
|
1天前
|
Linux 程序员 计算机视觉
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
【linux 学习】在Linux中经常用到的cmake、make、make install等命令解析
14 0
|
1天前
|
自然语言处理 Java Linux
【Linux】开始学习进程替换吧!
通过学习进程替换,我们可以体会到多语言混搭的快乐,可以从C语言直接蹦到python ,也可以从c++里运行java代码。是不是很厉害!这是通过调度多个进程的效果,联系我们之前学习的进程,进程控制等概念。我们可以想要运行其他代码可以通过创建子进程来实现,但是这样也肯定是同一种语言,如果想要运行其他语言,那是不是有种方法可以调度一个进程来当做子进程呢??? 我们开始今天的学习吧!
11 0
|
1天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
27 0
|
1天前
|
Ubuntu 算法 Linux
嵌入式Linux的学习误区
该文指出了学习嵌入式Linux开发的两个常见误区。一是过分专注于学习桌面或服务器版Linux,而非关注嵌入式开发本身,实际上只需熟悉基本操作即可。二是试图在没有基础的情况下直接阅读Linux内核源代码,这是不切实际的,应先建立基础知识再进行源码学习。文章还提到了在嵌入式系统中获取和处理屏幕数据的示例,包括使用gsnap工具将framebuffer数据转为图像,以及涉及的交叉编译过程。
11 0
|
1天前
|
编解码 Linux 数据安全/隐私保护
【Linux学习】​​学习Linux的准备工作和Linux的基本指令
【Linux学习】​​学习Linux的准备工作和Linux的基本指令
|
1天前
|
Linux Shell 虚拟化
【Linux学习】Linux 的虚拟化和容器化技术
【Linux学习】Linux 的虚拟化和容器化技术
|
1天前
|
运维 监控 安全
【专栏】11 个 Linux 网络命令学习和熟练运用这些命令是提升网络管理能力的基础
【4月更文挑战第28天】本文介绍了11个必备的Linux网络命令,包括ifconfig、ip、ping、traceroute、netstat、tcpdump、ss、telnet、ftp、ssh和nmap,这些命令在网络配置、故障排查和性能监控中发挥关键作用。通过实例分析,强调了它们在实际工作中的综合应用,帮助运维工程师提升效率和应对网络挑战。学习和熟练运用这些命令是提升网络管理能力的基础。