阿里云安装Java环境
centos7.7 mini版本安装Java开发环境(redis)
软件下载
https://github.com/antirez/redis/releases #github下载最新版本
redis-5.0.7.tar.gz(我下载的是5.0.7)
参考博客:https://www.cnblogs.com/awakenedy/articles/9156086.html
安装依赖包
yum install -y gcc
解压压缩包
tar -zxvf redis-5.0.7.tar.gz
进入redis-5.0.7目录
安装
make #编译
如果编译出错可以尝试 make MALLOC=libc(百度)
make install
[root@bogon redis-5.0.7]# make install
cd src && make install
make[1]: Entering directory `/home/hzm/safaware/redis-5.0.7/src'
CC Makefile.dep
make[1]: Leaving directory `/home/hzm/safaware/redis-5.0.7/src'
make[1]: Entering directory `/home/hzm/safaware/redis-5.0.7/src'
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/home/hzm/safaware/redis-5.0.7/src'
看到这个信息表上安装成功
redis安装目录在 /usr/local/bin
启动redis
直接启动
[root@bogon redis-5.0.7]# redis-server
23832:C 16 Dec 2019 03:11:53.184 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
23832:C 16 Dec 2019 03:11:53.184 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=23832, just started
23832:C 16 Dec 2019 03:11:53.184 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
23832:M 16 Dec 2019 03:11:53.186 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.7 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 23832
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
23832:M 16 Dec 2019 03:11:53.192 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
23832:M 16 Dec 2019 03:11:53.192 # Server initialized
23832:M 16 Dec 2019 03:11:53.192 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
23832:M 16 Dec 2019 03:11:53.192 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
23832:M 16 Dec 2019 03:11:53.193 * Ready to accept connections
#查看redis进程
ps -aux | grep redis
[root@bogon bin]# ps -aux | grep redis
root 23832 0.2 0.1 153900 2620 pts/0 Sl+ 03:11 0:00 redis-server *:6379
root 24120 0.0 0.0 112712 960 pts/1 S+ 03:17 0:00 grep --color=auto redis
查看redis监听情况
netstat -ltnp | grep 6379
redis-cli
# Keyspace
127.0.0.1:6379> set uname_hz huzhimin
OK
127.0.0.1:6379> get uname_hz
"huzhimin"
配置后台启动(阿里云不适用)
其他的配置太麻烦,用最简单的方式配置 配置都在安装包路径里面
找到之前的解压包redis-5.0.7/utils目录redis_init_script文件
把这个文件放到init.d目录,文件包含了启动配置的端口与启动配置文件地址,start 方法,stop方法,可以使用此文件直接启动与关闭redis
1、init.d 目录中存放的是一系列系统服务的管理(启动与停止)脚本。
2、用service命令可执行init.d目录中相应服务的脚本。
例:执行命令“service redis start”,可启动/etc/init.d/redis脚本
cp redis_init_script /etc/init.d/redis #自定义文件名称 主要用于做服务启动
cp redis.cnf /etc/redis/6379.cnf # 安装目录的cnf拷贝到与redis_init_6379 配置一致的目录文件名一致
service redis start #启动redis
service redis stop #停止redis
配置命令启动(阿里云)
==阿里云7.7 不支持service方式启动改成systemctl 方式了 ==
在/lib/systemd/system目录下创建一个脚本文件redis.service,里面的内容如下:
[Unit]
Description=Redis
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/6379.conf
ExecStop=/usr/local/bin/redis-cli -h 127.0.0.1 -p 6379 shutdown
[Install]
WantedBy=multi-user.target
[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动
[Service] 表示这里是服务信息
ExecStart 是启动服务的命令
ExecStop 是停止服务的指令
[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
systemctl reload-daemon 加载新的unit 配置文件
systemctl start redis 启动redts
systemctl stop redis 停止redis
远程连接redis
需要修改cnf的三个配置
protected-mode no #保护模式 (参数是为了禁止外网访问redis,如果启用了,则只能够通过lookback ip(127.0.0.1)访问Redis)
daemonize no # 守护进程模式开启(后台启动)
bind127.0.0.1 #指定访问IP
requirepass 密码
配置开机启动(阿里云不适用)
chkconfig redis on #执行命令就可以 redis 与init.d目录里面的redis文件名一致
配置开机启动(阿里云)
== 阿里云7.7 不支持service方式启动改成systemctl 方式了==
centos7 所有开机启动的文件都需要放在这个目录下
创建软连接到启动目录
ln -s /lib/systemd/system/redis.service /etc/systemd/system/multi-user.target.wants/redis.service
//刷新配置
systemctl daemon-reload
成功后查看目录如下,这里包含了全部开机启动的程序
开机启动
systemctl enable redis 加入开机启动
systemctl disable redis 禁止开机启动
systemctl status redis 查看状态
直接加入开机启动会提示报错说file exists,这时候就需要先systemctl disable redis 在重新加入开机启动。这是因为在systemctl enable (service名)时候,实际上是创建了一个链接,所以再起启动必须先清除掉
阿里云无法远程访问
阿里云linux安装完成redis,并且已经运行,检测6379端口,显示redis-server正在监听
最后发现必须在阿里云主机配置安全组规则,外部访问成功。
docker安装redis
docker 安装
https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.548b1991C9PJGE
redis 版本号:在这里可以查看
https://hub.docker.com/_/redis
service docker start 启动docker
docker search redis 搜索一下redis的镜像
docker pull redis:5.0.7 这里可以用最新版 latest,也可以指定版本安装,这里我指定5.0.7
安装完成
查看镜像
[root@iZwz94sng278sg8566ye0tZ ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis 5.0.7 dcf9ec9265e0 4 weeks ago 98.2MB
启动镜像
docker run -p 6379:6379 -v /home/hzm/docker_redis/redis.conf:/etc/redis/redis.conf -v /home/hzm/docker_redis/data:/data -d redis:5.0.7 redis-server /etc/redis/redis.conf
命令说明:
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
–name redis 指定该容器名称, 默认为redis 可不用填写。
-v 挂载目录,规则与端口映射相同。
为什么需要挂载目录:个人认为docker是个沙箱隔离级别的容器,这个是它的特点及安全机制,不能随便访问外部(主机)资源目录,所以需要这个挂载目录机制。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
–appendonly yes 开启redis 持久化
注意
1 容器目录不可以为相对路径
2 redis.conf 中daemonize=NO。非后台模式,如果为YES 会的导致 redis 无法启动,因为后台会导致docker无任务可做而退出。
常用docker命令
附一些常用Docker命令,更多命令请访问:http://www.docker.org.cn/dockerppt/106.html
docker ps 查看当前正在运行的容器
docker ps -a 查看所有容器的状态
docker start/stop id/name 启动/停止某个容
docker images 查看本地镜像
docker rm id/name 删除某个容器
docker rmi id/name 删除某个镜像