Linux安装Redis

13

系统版本为centOS 7.3

一、下载 Redis

在官网中下载Redis,下载地址为:http://www.redis.cn/

也可使用wget命令进行下载:

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

可以看到我们当前安装的Redis服务版本为5.0.5

二、解压

tar -zxvf redis-5.0.5.tar.gz

就可以获取到解压之后的源码包redis-5.0.5,之后进入到该目录中。

三、编译

在进入到该目录下输入命令:

make

就开启了Redis的编译状态,在编译完成之后可以看到类似如下的信息提示:

        CC rax.o
    LINK redis-server
    INSTALL redis-sentinel
    CC redis-cli.o
    LINK redis-cli
    CC redis-benchmark.o
    LINK redis-benchmark
    INSTALL redis-check-rdb
    INSTALL redis-check-aof

Hint: It's a good idea to run 'make test' ;)

make[1]: Leaving directory `/root/redis-5.0.5/src'
  • 应当运行make test命令
  • 源码文件被移动到当前目录的src文件夹下面。

安装过程可能出现的问题:

  • 1,部分CentOS默认是没有安装gcc,这会导致我们无法make成功。使用yum安装:

yum -y install gcc

  • 2,make时报如下错误:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory

zmalloc.h:55:2: error: #error "Newer version of jemalloc required"

make[1]: *** [adlist.o] Error 1

make[1]: Leaving directory '/data0/src/redis-2.6.2/src'

make: *** [all] Error 2

原因是jemalloc重载了Linux下的ANSI C的malloc和free函数。解决办法:make时添加参数。

make MALLOC=libc

  • 3,make之后,会出现一句提示

Hint: To run 'make test' is a good idea ;)

但是不测试,通常是可以使用的。若我们运行make test ,会有如下提示

[devnote@devnote src]$ make test

You need tcl 8.5 or newer in order to run the Redis test

make: ***[test] Error_1

解决办法是用yum安装tcl8.5(或去tcl的官方网站http://www.tcl.tk/下载8.5版本,并参考官网介绍进行安装)

yum install tcl

四、安装

  • 进入到源码目录src下,输入对应的安装命令:
cd src
make install
  • 安装完成之后的提示结果为:
Hint: It is a good idea to run 'make test' ;)

    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install
    INSTALL install

五、文件移动

在经过make install命令对Redis进行安装之后,我们可以看到文件夹下面的文件列表:

  • 文件移动的目的是为了对Redis的配置和服务启动进行管理:

    • bin用于存放命令
    • etc拥有存放配置文件

我们返回上级目录,也就是在redis-5.0.5这个文件夹中进行文件夹的创建:

cd ..
mkdir conf
mkdir bin

之后使用命令将对应的文件移动到对应目录下:

mv redis.conf conf/
cd src
mv mkreleasehdr.sh  redis-benchmark  redis-check-aof  redis-check-rdb  redis-cli  redis-sentinel  redis-server  redis-trib.rb ../bin

六、Redis服务启动

进入到bin目录下面,进行Redis服务的启动:

./redis-server

  • 在这里可以看到服务已经启动起来,但是并没有使用到etc/redis.conf配置文件。目前还是使用默认配置进行服务的启动。先使用control + c停止当前服务。我们可以看到如下提示信息:
^C6443:signal-handler (1521089911) Received SIGINT scheduling shutdown...
6443:M 15 Mar 12:58:31.994 # User requested shutdown...
6443:M 15 Mar 12:58:31.995 * Saving the final RDB snapshot before exiting.
6443:M 15 Mar 12:58:32.003 * DB saved on disk
6443:M 15 Mar 12:58:32.003 # Redis is now ready to exit, bye bye...

我们运行pstree -p | grep redis也可以发现Redis服务已经被完全终止。

接下来使用命名带上配置文件一起运行

./redis-server /path/to/redis.conf
./redis-server /mnt/vdb/software/redis-5.0.5/etc/redis.conf

但是现在依旧是前台运行,在我们修改配置文件之后才可以后台运行。需要将daemonize配置为true

  • 搜索 :daemonize
  • 把daemonize配置项改为yes
  • 保存退出

在vim命令模式下,输入'/'即进入搜索模式,输入想输入的字符串即可进行搜索

在使用以上加载配置文件的命令启动Redis服务即可看到如下提示:

Redis进入后台启动模式。使用命令:

pstree -p | grep redis

可以看到提示:

证明Redis服务正在运行。

Redis服务的默认端口号为6379。

我们可以使用如下命令查看端口占用情况:

lsof -i tcp:6379

可以看到如下提示:

redis-ser 8842 root    6u  IPv4 33556564      0t0  TCP VM_39_184_centos:6379 (LISTEN)

证明该端口被Redis服务所占用。

注意,redis服务需要 root 权限才能查看,不然只能检查到6379被某个进程占用,但是看不到进程名称。

至此,redis服务已经按照配置文件启动成功。

七、客户端登录

使用命令

./redis-cli 

就会进入对应的命令行:

./redis-cli 
127.0.0.1:6379>

表明客户端登录成功,可以使用exit退出命令行。

八、Redis服务关闭

  • pkill redis-server
  • 在Redis的bin目录下/redis-cli shutdown
  • 还可以使用 killallkill -9对服务进行关闭。

九、使用RDM连接Redis时出现“拒绝连接错误”

修改etc/redis.conf 文件。

bind 127.0.0.1

修改为Redis部署的服务器IP地址。例如:

bind 192.168.1.100

十、附录:配置信息

  • daemonize 如果需要在后台运行,把该项改为yes
  • pidfile 配置多个pid的地址 默认在/var/run/redis. pid
  • bind 绑定ip,设置后只接受来自该ip的请求
  • port 监听端口,默认是6379
  • loglevel 分为4个等级:debug verbose notice warning
  • logfile 用于配置log文件地址
  • databases 设置数据库个数,默认使用的数据库为0
  • save 设置redis进行数据库镜像的频率。
  • rdbcompression 在进行镜像备份时,是否进行压缩
  • dbfilename 镜像备份文件的文件名
  • Dir 数据库镜像备份的文件放置路径
  • Slaveof 设置数据库为其他数据库的从数据库
  • Masterauth 主数据库连接需要的密码验证
  • Requriepass 设置 登陆时需要使用密码
  • Maxclients 限制同时使用的客户数量
  • Maxmemory 设置redis能够使用的最大内存
  • Appendonly 开启append only模式
  • Appendfsync 设置对appendonly. aof文件同步的频率(对数据进行备份的第二种方式)
  • vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
  • vm-swap-file 设置虚拟内存的交换文件路径
  • vm-max-memory 设置redis使用的最大物理内存大小
  • vm-page-size 设置虚拟内存的页大小
  • vm-pages 设置交换文件的总的page数量
  • vm-max-threads 设置VM IO同时使用的线程数量
  • Glueoutputbuf 把小的输出缓存存放在一起
  • hash-max-zipmap-entries 设置hash的临界值
  • Activerehashing 重新hash

转自:https://blog.csdn.net/u011669700/article/details/79566713