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 | tar zxf redis-4.0.11.tar.gz |
编译安装
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 | cd /usr/local/redis/bin |
结果
但是,这样做的话,我们并没有使用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 | pkill redis-server |
1 | /usr/local/redis/bin/redis-cl |
关闭之后,发现6379就不再被占用了,redis的进程也都没有了。
客户登陆也无法成功了。
也可以使用/usr/local/redis/bin/redis-cli shutdown,这种方法使用客户端命令redis-cli 进行Redis服务的停止
1 | ./redis-server redis.conf |
当然关闭某个服务还可以使用 killall 和 kill -9.
将redis添加到systemctl
创建redis服务
1 | vi /usr/lib/systemd/system/redis-6379.service |
1 | [Unit] |
重载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进行数据库镜像的频率。
1 | save 900 1 # 900秒(15分钟)内有1个写入 |
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模式
appendfilename
AOF文件名(默认: “appendonly.aof”)
appendfsync
设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
1 | always: 每个事件周期都同步刷新一次(默认) |
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