目录
前言
Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。
一、概述
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.编译安装
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
tar xf tar包
make && make install
redis-server redis.conf
2.RPM安装
基础环境(防火墙设置、宽容模式、静态IP、可以ping通百度)
yum install -y epel-release(可重复安装直至最新版本)
yum install -y redis
systemctl start redis
默认监听127.0.0.1地址
三、目录结构
/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文件存储目录
四、命令解析
启动
redis-server redis.conf(文件名)| systenctm start redis
redis登录命令
redis-cli(监听默认回环)
-h
redis服务器IP
-p
指定访问端口号
-a
指定登录密码
-n
指定数据库编号
redis-check-rdb
检查RDB文件
redis-check-aof
检查AOF文件
五、redis登录更改
问题:更改完port后,systemctl启动redis异常
解决办法:使用redis-server /etc/redis.conf·
若要redis后台运需修改配置文件 daemonize yes
建议用netstat,比ss看的清楚
六、数据库操作
(一)、登录数据库
1.本地
监听回环地址:redis-cli
监听本地网卡地址:redis-cli -h IP -p 端口号
2.远程登录
192.168.127.144主机
192.168.127.145主机
或者直接加密码
(二)、数据操作
1.数据库操作
select 数据库编号
2.数据操作
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模式
默认持久化
/var/lib/redis/dump.rdb
数据库启动时会读取
触发条件
redis进程退出
宕机
redis程序崩溃
手动保存(触发RDB)
save
2.AOF模式
/etc/redis.conf
appendonly.aof
默认进程启动时读取
appendonly yes 为开启,可以与RDB同时使用
重启服务在/var/lib/redis/生成文件appendonly.aof,后续操作将录入此文件中
文件为空时会有空格,不为空,重启服务后登录异常
解决办法
vim appendonly.aof在里随意插入后删除整行,重启服务登录即可
总结
redis基础操作是非关系型数据库的常用代表,可操作的数据类型较为广泛,更多的内容需要根据自身的需要去进行扩展,才能掌握牢固此内容。