Redis安装

Redis

Redis是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings),散列(hashes),列表(lists),集合(sets),有序集合(sortedsets)与范围查询,bitmaps,hyperloglogs和地理空间(geospatial)索引半径查询。Redis内置了复制(replication),LUA脚本(Luascripting),LRU驱动事件(LRUeviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(highavailability)

官网

可视化工具

单节点安装

这里以主流版本3.2为例

# yum -y install gcc tcl
# wget https://download.redis.io/releases/redis-3.2.9.tar.gz
# tar xf redis-3.2.9.tar.gz
# cd redis-3.2.9
# make
  • 如果出错,需要redis-3.2.9/deps下编译
# cd deps
# make jemalloc
# make lua
# make linenoise
# make hiredis
# make geohash-int
# cd ..
  • 安装
    • 缺省安装:默认安装到/usr/local/bin
    # make install
    
    • 自定义安装
    # mkdir -p /jerry/redis
    # make PREFIX=/jerry/redis install
    # mkdir /jerry/redis/data
    
    # cd /jerry/redis/bin
    # ls
    可执行文件:
    redis-benchmark
    redis-check-aof
    redis-check-dump
    redis-cli
    redis-server
    
  • 将下面的变量追加入到~/.bash_profile文件末尾
export REDIS_HOME=/jerry/redis
export PATH=$PATH:$REDIS_HOME/bin

systemd服务

# useradd -r redis
# chown -R redis.redis /jerry/redis
# pwd
/root/redis-3.2.9/
# mkdir -p /etc/redis
# cp ./redis.conf /etc/redis/
# ll /etc/redis/
# touch /lib/systemd/system/redis.service
  • redis.service内容如下
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
Type=forking
ExecStart=/jerry/redis/bin/redis-server /etc/redis/redis.conf
ExecStop=/jerry/redis/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target

[Unit] 表示这是基础信息
Description 是描述
After 是在那个服务后面启动,一般是网络服务启动后启动

[Service] 表示这里是服务信息
ExecStart 是启动服务的命令
ExecStop 是停止服务的指令

[Install] 表示这是是安装相关信息
WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行

  • 设置开机启动
# systemctl daemon-reload
# systemctl enable redis

配置文件

# mkdir -p /var/log/redis
# chown redis.redis /var/log/redis
vim  /etc/redis/redis.conf 

修改如下内容:

# 3.x增加了bind,不设置在本地所有网络接口监听
#bind 127.0.0.1
bind 192.168.142.151 127.0.0.1

# 3.x增加了保护模式,默认开启
# 开启保护模式时,如果不使用bind绑定IP地址,或不使用密码,那么只能本地地址访问或使用Unix socket文件
protected-mode yes

# 后台服务
daemonize yes
port 6379
supervised systemd
pidfile /var/run/redis_6379.pid

# 日志目录,注意权限
loglevel notice
logfile "/var/log/redis/redis.log"

# 设置DB的数目
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 changed
save 900 1
save 300 10
save 60 10000
dbfilename dump.rdb

# 数据目录,注意权限
dir /jerry/redis/data

# AOF 默认关闭
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec

说明:
用于测试,或者内存小可以设置最大内存,但是生产环境一定尽量使用多的内存maxmemory

# systemctl start redis
# redis-cli
127.0.0.1:6379>
  • 然后则可用RDM客户端连接,默认无密码。如果需求密码可通过修改配置文件redis.conf中requirepass然后重启redis或通过如下命令设置
# redis-cli
127.0.0.1:6379> config get requirepass
127.0.0.1:6379> config set requirepass mypassword
127.0.0.1:6379> config get requirepass