0%

Redis编译安装

Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。

Redis的所有数据都是保存在内存中(效率高),然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为“全持久化模式”)。

下载Redis安装包

首先从官网下在redis正式版的压缩包

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

解压

1
2
tar zxf redis-4.0.11.tar.gz
cd redis-4.0.11

编译安装

1
make && make install

这时候,我们可以看看src下的文件

可以看到此时,src文件夹下出现了一些绿色的文件,这些文件就是我们以后需要用到的命令文件

移动文件

移动文件,便于管理
创建两个文件夹,bin用于存放命令,conf用于存放配置文件。

1
mkdir -p /usr/local/redis/{conf,bin}

将redis文件夹下的redis.conf复制到/usr/local/redis/conf/

1
cp redis.conf /usr/local/redis/conf/

并将src目录下的命令文件(绿色的),复制到/usr/local/redis/bin/

1
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server redis-trib.rb /usr/local/redis/bin/

启动Redis服务

首先进入刚才安装redis的目录
之后我们启动redis服务。启动redis服务需要用到命令redis-server

1
2
cd /usr/local/redis/bin
./redis-server

结果

但是,这样做的话,我们并没有使用etc的下的配置文件进行启动(图中红线部分)。
如果希望通过指定的配置文件启动,需要在启动时指定配置文件:
这里我们先用ctrl+C来终止服务,然后查看redis服务是否终止干净了,之后通过设置配置文件来启动服务:
按下ctrl+c后(^C):
运行:pstree -p | grep redis发现redis服务已经被终止干净
现在我们带上配置文件/usr/local/etc/redis.conf运行redis

1
./redis-server redis.conf

现在redis仍然是在前台运行。
需要在后台运行,把daemonize配置项改为yes

1
vi /usr/local/redis/conf/redis.conf

搜索 :/daemonize
把daemonize配置项改为yes 保存退出
之后使用配置文件启动redis-server。

1
./redis-server /usr/local/redis/conf/redis.conf

通过ps命令可以查看到redis正在运行。

1
ps -ef | grep redis

至此,redis服务已经按照配置文件启动成功!!
步骤五:客户端登录

1
/usr/local/redis/bin/redis-cli

回车后如果提示:

1
127.0.0.1:6379>

提示则表明客户端登录成功
步骤六:关闭Redis服务
停止Redis实例
我们可以使用pkill redis-server

1
2
3
pkill redis-server
netstat -tunpl | grep 6379
pstree -p | grep redis
1
2
3
4
/usr/local/redis/bin/redis-cl
Could not connect to Redis at 127.0.0.1:6379: Connection refusednot connected
> not connected
> exit

关闭之后,发现6379就不再被占用了,redis的进程也都没有了。
客户登陆也无法成功了。
也可以使用/usr/local/redis/bin/redis-cli shutdown,这种方法使用客户端命令redis-cli 进行Redis服务的停止

1
2
3
4
./redis-server redis.conf
/usr/local/redis/bin/redis-cli shutdown
pstree -p | grep redis
netstat -tunpl | grep 6379

当然关闭某个服务还可以使用 killall 和 kill -9.

将redis添加到systemctl

创建redis服务

1
vi /usr/lib/systemd/system/redis-6379.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
[Unit]
Description=Redis Service
After=network.target

[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/conf/6379/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

重载systemctll配置

1
systemctl daemon-reload

注意

redis需要外部连接要修改配置文件

1
bind 0.0.0.0

常用配置

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

主数据库连接需要的密码验证

requirepass

设置 登陆时需要使用密码

Maxclients

限制同时使用的客户数量

Maxmemory

设置redis能够使用的最大内存

maxmemory-policy

数据淘汰策略

volatile-lru:只对设置了过期时间的key进行LRU(默认值)

allkeys-lru : 删除lru算法的key

volatile-random:随机删除即将过期key #推荐

allkeys-random:随机删除

volatile-ttl : 删除即将过期的

noeviction : 永不过期,返回错误

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

-------------    本文结束  感谢您的阅读    -------------