点击上方“平头哥的技术博文”,选择“关注公众号”
技术文章第一时间送达!
Redis 是一款比较常用的 NoSQL 数据库,我们通常使用 Redis 来做缓存,这是一篇关于 Redis 安装的文章,所以不会涉及到 Redis 的高级特性和使用场景,Redis 能够兼容绝大部分的 POSIX 系统,例如 Linux、OS X 等,但是很遗憾不支持在 Windows 上安装,当然如果你需要在 windows 下安装 redis 的话,也是可以的,微软公司的开源技术组在 GitHub 上 维护一个 Redis 的分支,GitHub 地址为:https://github.com/microsoftarchive/redis
,我看了一下这上面的版本比较旧,所以我个人不推荐使用这个来安装 Redis ,Windows 用户可以使用 Docker 容器来安装,也是非常方便、简单的,接下来我们就一起来看看 Redis 的安装方式吧。
在 redis 官网中有安装教程,链接:https://redis.io/download
,安装步骤我拷贝过来了,步骤如下:
$ wget http://download.redis.io/releases/redis-5.0.6.tar.gz$ tar xzf redis-5.0.6.tar.gz$ cd redis-5.0.6$ make
我在 /usr/local 目录下面操作的这些命令,也就是说 Redis 的安装目录为 /usr/local ,这些命令执行完之后你的机器上安装好 Redis ,在安装的过程中,如果你的机器上没有安装 gcc ,你安装好 gcc 之后再 make 可能会报以下错误
jemalloc/jemalloc.h: No such file or directory
当时没有截取详细的错误信息,只把主要的一段截取出来了,这个错误的原因是我们上一次 make 报错之后,有编译后的文件,所以我们需要清除上一次的残留文件再重新编译,将 make 换成 make distclean && make 就可以了。
redis.conf 是 Redis 的配置文件,redis 的所有配置有在这个文件里面,这个文件挺大的有接近 1400 行,有关 redis 的操作、使用说明都在里面,可以详细的阅读阅读这个配置文件,大部分情况下我们使用默认配置就行,只需要设置少量配置就行。redis.conf 的存放位置在 Redis 的安装目录下,我这里是 /usr/local/redis-5.0.5 目录下,一起来看看我们可能会修改的几个配置:
好像大概设置这几个就好了,更多关于 redis.conf 的配置,你可以详细阅读 redis.conf 配置文件或者查阅相关手册。
Redis 的启动非常简单,Redis 安装完成之后,会在 /usr/local/redis-5.0.5/src 存放 Redis 的 shell 交互命令,其中有一个 redis-server ,这个就是 Redis 的启动命令,执行:
./redis-server /usr/local/redis-5.0.5/redis.conf
后面跟的是 redis.conf 的文件路径,不出意外的话我们将启动成功,你会看到如下界面:
这里我们使用的是守护进程的方式启动,所以不会出现带有 redis logo 的启动界面,我们可以使用 shell 命令登录到 Redis 中,还是在 src 目录下面,执行下面这条命令:
./redis-cli
这命令你就进入了 shell 交互界面,./redis-cli 命令可以带一些参数,例如 -h IP 这个就可以进入指定机器的 Redis 实例,进入之后你就可以进行一些操作了,如下图所示:
Redis 的关闭方式有两种,一种是在 shell 交互界面关闭,另一种是 kill + 进程号关闭 Redis 实例的方式
shutdown [nosave|save]
在 shell 交互界面输入 shutdown 命令就可以关闭 Redis 实例,后面有一个可选参数,nosave 就是不将内存中的数据持久化,save 就是将内存中的数据持久化。shutdown 关闭方式是比较优雅的关闭方式,建议使用这种关闭方式
使用 ps -ef|grep redis
查看 Redis 进程号,如下图所示:
在这里找到我们需要关闭 redis 实例的进程号,比如这里我们的进程号为 27133,那么我们就直接使用 kill 27133
关闭 Redis 实例服务,这种方式我们需要注意一个地方,那就是需要我们去把 pid 文件删掉,pid 文件存放的位置我们在 redis.conf 里配置的 pidfile /var/run/redis_6379.pid
,我们需要到 /var/run
目录下把 redis_6379.pid 删掉,这样下一次才能正常重启 Redis 服务。
上面两种方式都可以关闭 Redis 服务,随便选一种都行,但是切记不要使用 Kill 9 方式关闭 Redis 进程,这样 Redis 不会进行持久化操作,除此之外,还会造成缓冲区等资源不能优雅关闭,极端情况下会造成 AOF 和复制丢失数据的情况
在服务器上我们可能需要将 Redis 设置为开机自启动,其实这个也非常简单,我们只需要做以下四步操作即可。
#!/bin/sh## Simple Redis init.d script conceived to work on Linux systems# as it does use of the /proc filesystem.#chkconfig: 2345 80 90#description:auto_run# 端口号REDISPORT=6379# 启动命令EXEC=/usr/local/redis-5.0.5/src/redis-server# shell 交付命令CLIEXEC=/usr/local/redis-5.0.5/src/redis-cli# pid 存放位置PIDFILE=/var/run/redis_${REDISPORT}.pid# redis 配置文件CONF="/usr/local/redis-5.0.5/redis.conf"case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT shutdown while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;;esac
################################# GENERAL ###################################### By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.daemonize yes
chmod +x /etc/init.d/redis
# 启动 redisservice redis start# 停止 redisservice redis stop# 开启服务自启动chkconfig redis on
Docker 安装 Redis 整体来说比较方便,我说的是非生产环境,就是自己搭着测试或者学习的环境,下面的步骤全部建立在你已经在你的电脑上安装了 Docker 的基础上,下面就来开启安装之旅。
docker pull redis
docker run -p 6379:6379 --name myredis -d redis redis-server --appendonly yes
这种方式启动使用的默认的 redis.conf 配置,我们先来看看这几个参数的意思
通过上面的步骤,我们已经在 Docker 中启动了 Redis 服务,下面我们就来通过 redis-cli 访问一下,使用下面这条命令就可以启动 redis-cli
docker exec -it dockerRedis redis-cli
其中 dockerRedis 是你启动 Redis 容器名称,不出意外的话,你可以启动一个 redis-cli 客户端,如下图所示:
上面就是使用 Docker 简单的启动 Redis ,整体来说比 linux 上面安装启动要方便不少,主要是你可以在 windows 系统上运行,虽然最终它还是运行在 linux 上面的,但是这个过程我们是无感知的。你可以能会问:我想在启动的时候知道 redis.conf 可行不?答案是可行的,但是如果你对 Docker 不了解的话,可能会遇到一些坑,我就遇到了,因为我对 Docker 不是太了解,平时使用 docker 都是只需要传入参数就好了,没有传过文件。关于启动时指定配置文件,在 redis 镜像那里有说明,但是是 linux 下面的,并不是 windows 系统下的 Docker 配置方式,所以我就百度到了下面这段命令
docker run -v /d:/dockerdata/redis/config/redis.conf:/usr/local/etc/redis/redis.conf --name myredis redis redis-server /usr/local/etc/redis/redis.conf
这段命令就是一个坑,压根就没有,启动这条命令,你将得到如下反馈:
显然这条命令是没有用的,当然这只是我个人认为,也许是我操作失误,也许是我知识面不够,如果朋友们发现错误还请多多指教,这里我就先当它是错误的,正确的做法是在 Docker 的宿主机上存放 redis.conf 文件,显然 Docker 的宿主机并不是 windows 系统,而是启动在 windows 系统上的虚拟机,所以我们需要进入到虚拟机里面,Docker Quickstart Terminal
启动默认界面并没有正真的登录到虚拟机,所以我们需要更改登录方式,使用 docker-machine ssh
命令,如下图所示:
这样我们就进入到了真正的虚拟机里面,我们就在一台虚拟机上操作了,跟我们在 linux 上的安装一样,我们先建立两个目录用来存放 Redis 配置:
/usr/local/redis:存放redis.conf /usr/local/redis/data :存放持久化文件
建立好两个目录后, 我们把 redis.conf 放在 /usr/local/redis 目录下,使用下面这条 Docker 命令启动 Redis 镜像:
docker run -p 6379:6379 -v /usr/local/redis/redis.conf:/usr/local/etc/redis/redis.conf -v /usr/local/redis/data:/data --name dockerRedis -d redis redis-server /usr/local/etc/redis/redis.conf
这条 docker 启动命令跟上面的有一点区别,有两个参数我在这里说明一下:
到此,Docker 安装 Redis 的复杂操作也做完了,如果没什么特别要求的话,使用简单的 docker 启动就好了,简单方便,完全够用了。
完
●硬件内存模型到 Java 内存模型,这些硬核知识你知多少?●内存崩溃了?其实你只需要换一种方式●程序员成长的四个简单技巧,你 Get 了吗?●Java 多线程爬虫及分布式爬虫架构探索●Java 2019 生态圈使用报告,这结果你赞同吗?●Java 爬虫服务器被屏蔽,不要慌,咱们换一台服务器●给你一份 Spring Boot 知识清单来都来了,点个在看再走吧~~~