Redis是一个基于内存的轻量级键值对数据库
1、下载安装Redis
Redis建议运行在非root权限下
ubuntu18.04
开发环境:Ubuntu18.04 LTS.
推荐源码安装,因为redis的更新速度较快,官方源不一定能到最新
安装方法一:源码安装
1、创建目录
>* mkdir redis
>* cd redis
2、安装编译工具
> * sudo apt-get install build-essential
3、下载解压redis,并进入对应目录
>* wget http://download.redis.io/releases/redis-4.0.1.tar.gz
>* tar zxvf redis-4.0.1.tar.gz
>* cd redis-4.0.1/
4、备份redis的配置文件
>* cp redis.conf redis.confbk
5、编译依赖项
> * cd deps/
> * make hiredis lua jemalloc linenoise
6、编译redis
> * cd ..
>* make
【编译成功标志:
Hint: It's a good idea to run 'make test' ;)
make[1]: Leaving directory '/home/ocean/workspaces/redis/redis-4.0.1/src'】
7、安装Redis【安装到指定目录】
> * make PREFIX=/home/ocean/workspaces/redis/redis-4.0.1 install
8、查看是否成功生成了redis的二进制文件:
> * cd bin
> * ls
注:
- redis-benchmark :Redis基准测试工具
- redis-check-rdb :Redis RDB检查工具
- redis-check-aof :Redis AOF检查工具
- redis-cli:Redis命令行工具
- redis-server:Redis服务端
- redis-sentinel:
安装方法二:apt-get
>* sudo apt-get update
>* sudo apt-get install redis-server
状态查看:
systemctl status redis
修改配置文件里
sudo vim /etc/redis/redis.conf
- 注释掉bind 127.0.0.1。将这部注释掉,否则只有本机才能访问
- 保护模式修改为no。protected-mode no 保持默认
- 找到 daemonize no ,修改为 daemonize yes //默认以后台程序方式运行,不需要加&强制后台运行了
- 修改密码。requirepass xxxxxx
然后再重新启动redis即可
service redis restart
systemctl status redis
centos
安装包安装
1、创建目录
>* mkdir redis
>* cd redis
2、安装编译工具
> * yum -y install gcc gcc-c++ kernel-devel
3、下载解压redis,并进入对应目录
> * wget http://download.redis.io/releases/redis-stable.tar.gz
> * tar zvxf redis-stable.tar.gz
> * cd redis-stable/
4、备份redis的配置文件
>* cp redis.conf redis.confbk
5、编译依赖项
>* cd deps/
> * make hiredis lua jemalloc linenoise
6、编译redis
> * cd ..
> * make
【编译成功标志:
Hint: It's a good idea to run 'make test' ;)
make[1]: 离开目录“/home/oceanstar/workspace/redis/redis-stable/src”
7、安装Redis【安装到指定目录】
> * make PREFIX=/home/oceanstar/workspace/redis/redis-stable install
8、查看是否成功生成了redis的二进制文件:
> * cd bin
> * ls
设置开机自启
1.复制脚本到/etc/rc.d/init.d目录
> * cd /home/oceanstar/workspace/redis/redis-stable/utils
> * cp redis_init_script /etc/init.d/redis
2.更改redis脚本
> vi /etc/init.d/redis
3.将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf
> * mkdir /etc/redis
> * cp /home/oceanstar/workspace/redis/redis-stable/redis.conf /etc/redis/6379.conf
4、注册redis服务
> * chkconfig --add redis
5、设置开机自启redis服务
> chkconfig redis on
2、启动停止Redis
我采用的是源码安装
>* cd /home/ocean/workspaces/redis/redis-4.0.1
操作
启动
使用默认配置启动Redis
>* cd bin 【进入刚刚源码安装的bin目录下】
>* ./redis-server
或者:
>* bin/redis-server
# ./redis-server
117978:C 10 Oct 2021 12:07:48.016 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
117978:C 10 Oct 2021 12:07:48.016 # Redis version=6.0.5, bits=64, commit=00000000, modified=0, pid=117978, just started
117978:C 10 Oct 2021 12:07:48.016 # Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf
117978:M 10 Oct 2021 12:07:48.017 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 6.0.5 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 117978
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
可以看到直接使用redis-server启动redis之后,会打印出一些日志,通过日志可以看到一些信息:
- 当前redis的版本是 Redis 6.0.5
- redis的默认端口是6379
- redis建议使用配置文件来启动
建议:因为直接启动无法自定义配置文件,所以这种方式是不会在生产环境中使用的
运行启动
比如:
> * bin/redis-server --port 6380
建议:不推荐,因为修改的配置无法持久化,尤其在要修改的配置比较多时
指定配置启动Redis
redis目录下有一个叫做redis.conf的配置文件,里面就是redis的默认配置
> * bin/redis-server redis.conf
比如: 后台启动Redis
> * sudo gedit redis.conf
> * daemonize yes 【修改配置daemonize为后台启动,然后保存退出】
> * bin/redis-server redis.conf
13989:C 10 Oct 2021 12:16:52.123 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
13989:C 10 Oct 2021 12:16:52.123 # Redis version=6.0.5, bits=64, commit=00000000, modified=0, pid=13989, just started
13989:C 10 Oct 2021 12:16:52.123 # Configuration loaded
建议:
- 可以看出通过配置文件启用提供了更大的灵活性,所以生成环境会使用这种
- 实际运维中,我们通常会在一台机器上启动多个redis,并且将配置集中管理在指定目录下,并且配置不是完全手写的,而是在redis.conf作为模板进行修改
停止
前台启动
> * CTRL + C
后台启动方法1
>* kill pidof redis-server
后台启动方法2
>* bin/redis-cli shutdown
- 强烈建议使用此方法
注意:如果采用的是apt-get安装
>* /ect/init.d/redis-server start【启动】
>* /ect/init.d/redis-server stop【停止】
工作原理
启动
- 启动实例表示启动一个redis-server进程,同一个主机可以允许多个redis实例,只要这些实例采用不同配置:绑定不同端口、采用不同日志路径、使用不同路径保存数据持久化相关文件。
- 在启动redis时,可以直接将配置参数添加到redis-server地命令行参数中。当单机上存在多个实例时,可以把通用配置参数保存在一个实例中,通过命令行参数区分每个实例地独有配置参数,通过ps等命令可以区分不同实例。
- 可以通过使用systemd、Monit等进程管理工具来管理不同redis实例
停止
强烈建议使用shutdown命令停止redis服务:如果关心数据一致性且配置了数据持久化来将内存中的数据保存到磁盘中,那么shutdown除了会终结进程,还会执行其他一系列操作:
- 首先redis-server会停止响应客户端的连接
- 然后,如果启动了持久化,则会执行数据持久化操作;
- 之后,如果.pid文件和socket套接字文件描述符存在的话,则会进行清理并最终退出进程。
- 通过这种策略,redis会尽可能地防止数据丢失。如果使用kill杀死进程,那么由于在服务器关闭之前数据可能尚未被持久化而导致数据丢失。
3、使用redis-cli连接到Redis
准备
- 启动一个redis服务器
操作
打开终端,并通过redis-cli连接到redis:
>* bin/redis-cli
127.0.0.1:6379>
命令行提示符前面时IP地址:Redis监听端口号形式,表示redis-cli已经成功连接到了该redis实例
测试:
(1)设置两个字符键值对
>* set foo value1 【结果:OK】
>* set bar value2【结果:OK】
(2)获取刚刚设置的值
>* get foo【结果:"value1"】
>* get bar【结果:"value2"】
(3)停止redis实例
>* shutdown
not connected> # redis服务器已经关闭
(4)退出redis-cli
>* quit
(5)尝试连接redis实例
> bin/redis-cli
Could not connect to Redis at 127.0.0.1:6379: Connection refused
解释:不能连接
备注
- redis-cli连接redis服务器时,可以-h指定主机名/IP地址 、-p指定端口、-a指定密码、-s指定Unix套接字
redis-cli -h 127.0.0.1 -p 6349
4、获取服务器信息
准备
- 启动redis服务器并使用redis-cli连接
操作
- INFO 【输出当前所连接的redis服务器的所有指标】
- INFO Server【输出当前所连接的redi服务器的基本信息】
- INFO Clients【客户端连接的状态和指标】
- INFO Memory【大致的内存消耗指标】
- INFO Persistence【数据持久化相关的状态和指标】
- INFO Stats【总体统计数据】
- INFO Replication【主从复制相关的状态和指标】
- INFO CPU【CPU使用情况】
- INFO Cluster【Redis Cluster的状态】
- INFO Keyspace【数据库相关的统计数据】
备注
- 可以通过定期的使用INFO命令来获取信息构建Redis监控应用