Redis
Redis 是一个开源的使用ANSI
、C
语言编写、支持网络、可基于内存亦可持久化
的日志型、Key-Value
数据库,并提供多种语言的 API
。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止redis支持的键值数据类型如下字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)。
应用场景
- 缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
- 分布式集群架构中的session分离。
- 聊天室的在线好友列表。
- 任务队列。(秒杀、抢购、12306等等)
- 应用排行榜。
- 网站访问统计。
- 数据过期处理(可以精确到毫秒)
第一步
安装gcc
,redis是c编写的,gcc编译c的,所以我们先安装下gcc
1 | yum install gcc-c++ |
这些库是系统中不一定会有的,提示缺失再安装也可以;一般情况下都有
查看是否安装了gcc-c++
直接执行 ③;如果③报错的话就要安装
下面是一些扩展的知识
①查看所有的已安装软件名称(前提是必须是yum安装)
1 | rpm -qa |
②显示软件的安装路径
1 | rpm -ql 软件名称 |
③列出所有安装的 软件
1 | rpm -qa | grep gcc-c++ # 查看安装的gcc-c++ |
④软件是否安装
1 | rpm -q | grep gcc-c++-4.8.5-39.el7.x86_64 |
这一步如果报错的说明就要安装gcc-c++
⑤查看软件所有安装包的文件存储位置
1 | rpm -qal |grep 软件名称 |
1 | # 这几条命令中用到的 q ———— 表示查询 query,后面可以跟其他选项 |
第二步
①下载redis 在/usr/local/
目录下
1 | cd /usr/local/ |
②解压
1 | tar -zxvf redis-5.0.4.tar.gz |
③编译
1 | cd redis-5.0.4 # 进入到 redis 目录下 |
④安装
1 | mkdir -p /usr/loacl/redis # 创建 redis 目录 |
这时Redis
的bin
目录下有以下几个文件
redis-benchmark——> 性能测试工具
redis-check-rdb ——>RDB文件修复工具
redis-sentinel——>redis集群管理工具
redis-check-aof ——> AOF文件修复工具
redis-cli ——>Redis 客户端
redis-server ——>Redis 服务器启动命令
⑤拷贝 redis-5.0.5
目录下的redis.conf
1 | cp redis.conf /usr/local/redis/bin |
⑥编译redis.conf
1 | vi /usr/local/redis/redis.conf |
修改以下内容
1 | protected-mode no # 关闭保护模式,不然会阻止远程访问 |
第三步
配置安全组
我用的是阿里云服务器,所以要去服务器实例配置安全组,详情请看上一篇https://jack-roc.github.io/2018/03/15/MySQL/>'部署MySQL.👈👈
运行Redis
1 | ./bin/redis-server ./redis.conf # 后面这个redis.config 是指定这个配置启动 |
如果出现图像化界面说明已将成功了
或者可以产看后台redis是否在运行
1 | ps aux | grep redis |
进入Redis
客户端
1 | ./bin/redis-cli |
如果你想要存入中文,或者其他要用中文的话,输入以下命令
1 | ./bin/redis-cli --raw # 如果你输入上面那个命令存入中文会乱码 |
如果你想关闭Redis
进程 在redis-cli
客户端输入下面的命令
1 | shutdown # 或者 kill -9 进程号 直接杀死 |
如果设置了密码 需要加上参数 -a 密码 ,否则提示权限不足
1 | ./redis-cli -h 192.168.25.12 -a 密码 |
设置Redis
服务器开机自启动
centos7系统中有不同类型的程序,一类是操作系统的服务程序,另一类是第三方程序,而redis就是第三方程序,每次关机后开机都要手工重新启动,很麻烦,那么如何把redis设置为开机自启动,以下将通过新建脚本的方式实现redis开机自启动。
①去/usr/lib/systemd/system/
目录下, 创建redis.service
文件
1 | cd /usr/lib/systemd/system/ |
填写内容如下
1 | [Unit] |
相关参数
Description:描述服务
After:描述服务类别
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
②设置开机启动
启动redis服务
1 | systemctl start redis |
查看redis服务的状态
1 | systemctl status redis |
查看redis的运行信息
1 | ps -aux|grep redis |
设置开机自启
1 | systemctl enable redis |
修改配置后重载系统服务
1 | systemctl daemon-reload |
重启Redis
1 | systemctl restart redis |
取消开机自启动redis服务
1 | systemctl disable redis |
查看所有已启动的服务
1 | systemctl list-units --type=service |
配置日志文件
配置日志的作用就是便于开发、测试、debug等等
在redis.conf
中配置 logfile
1 | logfile "/usr/local/redis/redis.log" |
远程访问Redis
以下命令本机必须在本机装了Redis
下进行的
连接Redis
服务器
①简单的连接
1 | redis-cli -h Ip # Redis服务器的IP地址 |
连接成功后,可以输入一些简单的命令如
1 | ping # 他会给你返回一个 PONG |
1 | info # 会返回一些如Redis服务器,Redis客户端信息等 |
②或者加上端口
1 | redis-cli -h Ip -p 3679 # Redis服务器的IP地址 |
③ 如果你设置了密码的话使用下面的方式连接
1 | redis-cli -h Ip -p 6379 -a "123456" # Ip——> |
知识点
Redis 持久化
RDB(注重结果)
优势
劣势
AOF(注重过程)
AOF默认没有打开,需要手动打开。
优势
劣势
配置AOF
配置信息
策略的选择: