前言
Redis(REmote DIctionary Server)是一个开源的内存数据库,它支持存储和检索键值对。Redis被广泛应用于各种场景,如缓存、消息队列、计数器、分布式锁等。
Redis的特点包括:
- 内存数据存储:Redis将所有数据都存储在内存中,以实现快速的读写操作。
- 数据持久性:Redis可以将数据持久化到硬盘中,以防止数据丢失。
- 多种数据结构支持:Redis支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等,使得它可以处理各种不同类型的数据。
- 高性能:由于数据存储在内存中,Redis能够以非常高的速度读取和写入数据。
- 分布式:Redis支持主从复制和分片,可以实现数据的高可用和横向扩展。
- 支持事务:Redis支持简单的事务操作,保证多个操作的原子性。
- 发布/订阅模式: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同时使用