安装
# 下载安装包
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
# 解压
tar -xvf redis-6.0.6.tar.gz
# 创建软连接
ln -s redis-6.0.6 redis
# 编译,这里需要系统安装gcc
make
# 安装
make install
安装完成后,在usr/local/bin 下能看到redis开头的可执行文件,所以我们可以在任意位置使用这些命令
比如: redis-cli -v 查看版本
启动
- 直接使用
redis-server
命令启动。 但此时不是后台运行,需要重开窗口才能连接。此时等待客户端连接
-
后台启动方式一: 指定后台启动参数,
redis-server --daemonize yes
-
后台启动方式二: 修改redis.conf中后台启动参数,并指定redis.conf启动,
redis-server /root/soft/redis/redis.conf
此处的redis.conf一般放到指定路径进行管理
关闭
- 断开和客户端的连接、持久化文件的生成,这个过程才算一种相对优雅的关闭。
- 可以使用
kill 进程号
,但不能kill -9 进程号
强制杀死服务,否则有可能造成AOF和复制丢失数据的情况。 -
redis-cli shutdown nosave|save
nosave
: 在关闭前,不生成持久化文件;
save
: 在关闭前,生成持久化文件;
存在密码时的关闭
[root@iZ8vb7b3jqfu07tzh9tot8Z redis]# redis-cli -a root shutdown
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
连接
- 使用 redis-cli 直接连接,默认主机 127.0.0.1 ,默认端口6379
- 使用 redis-cli -h 127.0.0.1 -p 6379 指定主机和端口
redis实例默认存在16个库(0-15),默认访问0库
切换库
or 修改 redis.conf
#db
redis.db = 2
设置密码
临时,重启服务后失效
127.0.0.1:6379> config set requirepass root
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "root"
127.0.0.1:6379>
长期,配置在redis.conf中,重启服务不会失效
requirepass xxx
授权登录
[root@iZ8vb7b3jqfu07tzh9tot8Z redis]# redis-cli
127.0.0.1:6379> get test:hello
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth root
OK
127.0.0.1:6379> get test:hello
"world"
127.0.0.1:6379>
or
[root@iZ8vb7b3jqfu07tzh9tot8Z redis]# redis-cli -a root
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> get test:hello
"world"
127.0.0.1:6379>
开机自启
新建文件
## vim /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /data/redis/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
加载配置
# 加载配置
systemctl daemon-reload
# 启动服务
systemctl start redis
# 查看服务状态
systemctl status redis
# 开启开机自启
systemctl enable redis
# 关闭服务
systemctl stop redis
默认配置项(redis.conf)
## 绑定主机,注释掉则能监听到远程主机的连接
bind 127.0.0.1
## 开启保护模式下,远程主机无法访问redis
protected-mode yes
## 端口
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
## 是否以守护进程的方式启动
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
## 日志文件,请注意,如果您使用标准输出("")进行日志记录但进行守护进程,则日志将发送到/dev/null,
## 指定日志文件,目录要提前创建,如:
## logfile "/root/soft/logs/redis/redis.out"
logfile ""
## schema
databases 16
always-show-logo yes
## 设置RDB的刷新时机,save m n 表示m秒内数据集存在n次修改。
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
## 开启RDB文件压缩
rdbcompression yes
rdbchecksum yes
## RDB文件名
dbfilename dump.rdb
rdb-del-sync-files no
## 存放持久化文件和日志文件
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
acllog-max-len 128
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
## 是否开启AOF文件持久化
appendonly no
## AOF文件名
appendfilename "appendonly.aof"
## AOF同步策略
appendfsync everysec
## 正在导入时,是否停止同步aof文件
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes
jemalloc-bg-thread yes