Redis简介
Redis是一个开源的,基于键值的存储服务系统,对于value支持多种数据结构,key都是字符串
Redis特性
-
速度快
- 官方宣称可达到10wOPS(每秒10w次读写)
- 将数据存储在内存中(速度快的主要原因)
- 用C语言开发的
- 单线程,避免线程切换和竞态消耗
- 非阻塞IO
-
持久化:Redis将所有数据保持在内存中,对数据的更新将异步的保存在磁盘中
-
支持多种数据结构
- String(字符串)、BitMap(位图)、HyperLogLog(超小的内存唯一值计数器)
- Hash(哈希)
- List(列表)
- Set(集合)
- ZSet(有序集合)、GEO(地理信息定位)
-
支持多种编程语言:Java、NodeJS、Python、Golang等
-
功能丰富:支持类MQ的发布订阅功能、支持Lua脚本、支持简单事务、支持pipeline等
-
简单
- Redis3.0的单机核心代码只有2300行代码
- 不依赖外部库
- 单线程模型,一次只能执行一个命令,后续命令只能等待
-
支持主从复制:主服务器节点数据可以同步到从服务器节点上
-
高可用和分布式
- 在2.8中支持Redis-Sentinel
- 在3.0中支持Redis-Cluster
Redis使用场景
- 做缓存系统
- 做计数器
- 做消息队列系统
- 做排行榜
- 做社交网络
- 实时性系统
Redis安装
yum install gcc-c++ #安装环境
wget -P /opt http://download.redis.io/releases/redis-6.0.8.tar.gz #下载安装包
tar xzf /opt/redis-6.0.8.tar.gz -C /opt/ #解压安装包
cd /opt/redis-6.0.8 #进入解压后的目录
make && make install #编译安装,默认安装的好的命令在/usr/local/bin/目录下
cp /opt/redis-6.0.8/redis.conf /usr/local/bin/ #将启动配置文件拷贝到安装目录中
rm -rf /opt/redis-6.0.8* #可选择删除安装文件
若安装过程中出现大批量报错,可能是gcc版本过低,需要升级
yum -y install centos-release-scl #安装scl源
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils #安装gcc9版本
scl enable devtoolset-9 bash #暂时切换到9版本
gcc -v #查看gcc版本命令
在/usr/local/bin/
下可查看到安装的命令
命令 | 描述 |
---|---|
redis-server |
服务端 |
redis-cli |
客户端 |
redis-benchmark |
性能测试 |
redis-check-aof |
AOF文件修复工具 |
redis-check-rdb |
RDB文件修复工具 |
redis-sentinel |
启动哨兵服务器端 |
Redis启动方式
- 最简启动
- 直接运行
redis-server
命令,不加任何参数,以默认配置进行启动
- 直接运行
- 动态参数启动:运行
redis-server
命令时增加一些参数--port
:指定端口号-v
:查看版本号信息,并没有启动
- 配置文件启动:运行
redis-server
命令时后跟一个配置文件路径
安全的关闭方式
使用redis-cli
进入服务,执行shutdown save
关闭并保存或shutdown nosave
关闭不保存
连接Redis
redis-cli
:启动Redis客户端
-h
:指定连接主机IP-p
:指定连接端口-a
:指定连接密码
Redis常用配置
配置项 | 含义 | 默认 |
---|---|---|
daemonize |
是否以后台守护进程启动 | no |
port |
服务所使用的端口号 | 6379 |
bind |
绑定的本机输入流量网卡IP地址(绑定的是客户端访问流量通过的网卡,并不是客户端IP,删除或0.0.0.0则谁都可以访问) | 127.0.0.1 |
protected-mode |
是否开启保护模式(开启后只允许本机访问) | yes |
requirepass |
设置Redis的密码 | |
logfile |
Redis系统日志文件名(仅仅只是名,可使用内置常量命名,比如${port} 代表端口号) |
|
dir |
Redis的工作目录(产生各种的文件的存放目录) | ./ |
Comments NOTHING