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 的安装方式吧。linux
在 redis 官网中有安装教程,连接:https://redis.io/download
,安装步骤我拷贝过来了,步骤以下:git
$ 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 可能会报如下错误github
jemalloc/jemalloc.h: No such file or directoryredis
当时没有截取详细的错误信息,只把主要的一段截取出来了,这个错误的缘由是咱们上一次 make 报错以后,有编译后的文件,因此咱们须要清除上一次的残留文件再从新编译,将 make 换成 make distclean && make 就能够了。docker
redis.conf 是 Redis 的配置文件,redis 的全部配置有在这个文件里面,这个文件挺大的有接近 1400 行,有关 redis 的操做、使用说明都在里面,能够详细的阅读阅读这个配置文件,大部分状况下咱们使用默认配置就行,只须要设置少许配置就行。redis.conf 的存放位置在 Redis 的安装目录下,我这里是 /usr/local/redis-5.0.5 目录下,一块儿来看看咱们可能会修改的几个配置:shell
好像大概设置这几个就行了,更多关于 redis.conf 的配置,你能够详细阅读 redis.conf 配置文件或者查阅相关手册。数据库
Redis 的启动很是简单,Redis 安装完成以后,会在 /usr/local/redis-5.0.5/src 存放 Redis 的 shell 交互命令,其中有一个 redis-server ,这个就是 Redis 的启动命令,执行:vim
./redis-server /usr/local/redis-5.0.5/redis.confwindows
后面跟的是 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
# 启动 redis service redis start # 中止 redis service 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 启动就行了,简单方便,彻底够用了。
目前互联网上不少大佬都有 Redis 系列教程,若有雷同,请多多包涵了。原创不易,码字不易,还但愿你们多多支持。若文中有所错误之处,还望提出,谢谢。
欢迎扫码关注微信公众号:「平头哥的技术博文」,和平头哥一块儿学习,一块儿进步。