Redis数据库安装
-
官方网站:http://www.redis.io
-
中文网站:http://www.redis.cn
-
开源的(BSD协议),使用ANSI C编写,基于内存的且支持持久化,高性能的Key-Value的NoSQL数据库。支持数据结构类型丰富,有如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sorted sets) 与范围查询,bitmaps,hyperloglogs和地理空间(geospatial) 索引半径查询。
-
丰富的支持主流语言的客户端,C、C++、Python、Erlang、R、C#、Java、PHP、Objective-C、Perl、Ruby、Scala、Go、JavaScript。
-
用途:缓存(StackOverFlow)、数据库(微博)、消息中间件(微博)
-
Redis版本:目前主要版本为3.2
- redis在2017年也发布了4.x版本,2018年发布了5.x版本,目前是5.0.x
-
部署环境是Linux,本次部署在CentOS 7.x上。
- Windows版本由微软提供https://github.com/MicrosoftArchive/redis
- 可视化工具RedisDesktopManager。windows目前使用redis-desktop-manager版本收费了,使用老版本。
安装
Linux单节点安装
# yum -y install gcc tcl
# wget http://download.redis.io/releases/redis-3.2.13.tar.gz
# tar -xf redis-3.2.13.tar.gz
# cd redis-3.2.13
# make
如果错误,需要redis-3.2.13/deps下编译
# cd deps
# make jemalloc
# make lua
# make linenoise
# make hiredis
# make geohash-int
# cd ..
缺省安装
# make install
默认安装到/usr/local/bin
自定义安装
# mkdir -p /application/redis
# make PREFIX=/application/redis install
准备redis数据目录文件
# mkdir /application/redis/data
为redis创建专属用户,无家目录
# useradd -r redis
设置redis目录权限
# chown -R redis.redis /application/redis
- 添加redis环境变量
修改~/.bash_profile文件增加如下内容:
# 添加 redis
export REDIS_HOME=/application/redis
export PATH=$REDIS_HOME/bin:$PATH
- 配置redis.service内容如下
- 在/lib/systemd/system/创建redis.service
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
Type=forking
ExecStart=/application/redis/bin/redis-server /etc/redis/redis.conf
ExecStop=/application/redis/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
-
配置文件解释
- [Unit]表示这是基础信息
- Description是描述
- After 是在那个服务后面启动,一般是网络服务启动后启动
- [Service]表示这里是服务信息
- ExecStart是启动服务的命令
- ExecStop是停止服务的指令
- [Install]表示这是是按照相关信息
- WantedBy是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
# systemctl demon-reload # systemctl enable redis
- [Unit]表示这是基础信息
-
redis.conf配置文件
在etc目录中创建redis的配置文件目录
# mkdir -p /etc/redis
拷贝配置文件到/etc/reids目录
# cp /root/redis-3.2.13/redis.conf /etc/redis/
- 修改/etc/redis/redis.config配置文件
# 添加本地ip地址
bind 127.0.0.1 192.168.61.109
# 开启保护,如果开启,外部不能访问管理端
protected-mode yes
# 设置默认端口
port 6379
# tcp的宝活时间
tcp-keepalive 300
# 作为服务启动,为后台服务。即后台守护进程
daemoize yes
# 指定supervised为systemd
supervised systemd
# 日志级别
loglevel notice
# 指定日志输出文件(需要相应权限)
logfile "/var/log/redis/redis.log"
# 指定redis默认多少个数据库
databases 16
# 2种持久化方式
# RDB:Redis DB 默认开启
# 下面是执行快照的条件
# In the example below the behaviour will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys change
save 900 1 #如果900秒内,有一次更新,或者增加过,会保持落地数据一次
save 300 10 # 如果在300秒内,有10次以上的改动,会自动保存落地数据一次
save 60 10000 # 如果在60秒有10000次改动,或10000次以上的改动,就自动保存落地数据一次
#数据库文件名
dbfilename dump.rdb
# 数据目录,注意权限
dir /application/redis/data
# ADF 默认关闭
appendonly no
appendfilename "appendonly.aof"
appenfsync everysec
说明:
用于测试,或者内存小科员设置最大内容,但是生产环境一定尽量使用多的内存
maxmemory <bytes>
- 创建redis日志文件输出目录,并赋予权限
# mkdir /var/log/redis
# chown redis.redis -R /var/log/redis/
- 启动reids
启动redis
# systemctl start redis
添加开机启动redis
# systemctl enable redis
停止redis服务
# systemctl stop redis
- redis服务
- SysV服务:在CentOS6.x中。redis-3.2.12tar.gz中的utils目录install_server.sh,可以帮助完成SysV风格服务。
可以查看redis-server启动的各种命令参考帮助
# redis-server --help
redis-3.2.12.tar.gz中的utils目录
# ./install_server.sh
完成后,配置文件在/etc/redis/6379.conf
可以把redis做成服务
# mv /etc/init.d/redis_6379 /etc/init.d/redisd
# chkconfig redisd on
查看修改配置文件后,可以启动redis服务
# service redisd start
# service redisd start|stop|restart|status
# ss -tanl
使用install_server.sh脚本生产的redis配置文件为/etc/redis/6379.conf