Skip to content

一、Redis概述与安装

1、概述

  • Redis是一个开源的key-value存储系统。

  • 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

  • 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

  • 在此基础上,Redis支持各种不同方式的排序。

  • 与memcached一样,为了保证效率,数据都是缓存在内存中。

  • 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。

  • 并且在此基础上实现了master-slave(主从)同步。

  • 默认16个数据库,类似数组下标从0开始,初始默认使用0号库

  • 使用命令 select <dbid>来切换数据库。如: select 8 统一密码管理,所有库同样密码

  • dbsize查看当前数据库的key的数量

  • flushdb清空当前库

  • flushall通杀全部库

2、安装

Redis官方网站Redis中文官方网站
http://redis.iohttp://redis.cn/

在这里插入图片描述

1、二进制安装

1、安装C 语言的编译环境

sh
yum install centos-release-scl scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash
# 测试 gcc版本
gcc --version

2、下载安装包

https://download.redis.io/releases/redis-6.2.1.tar.gz

3、安装

sh
# 安装包放入opt目录下
cd /opt
tar -zxvf redis-6.2.1.tar.gz
cd redis-6.2.1
# 在redis-6.2.1目录下执行make命令(只是编译好)
make

在这里插入图片描述

sh
# 跳过make test 继续执行: make install
make install
# 默认安装目录 /usr/local/bin
sh
# 如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
# 解决方案:运行make distclean
# 在redis-6.2.1目录下再次执行make命令

4、前台启动(不推荐)

  • 前台启动,命令行窗口不能关闭,否则服务器停止
sh
redis-server

在这里插入图片描述

5、后台启动

sh
# 备份redis.conf
# 拷贝一份redis.conf到其他目录
mkdir /myredis
cp  /opt/redis-6.2.1/redis.conf  /myredis/redis.conf
# 后台启动设置daemonize no改成yes

在这里插入图片描述

sh
# 指定配置文件启动
redis-server /myredis/redis.conf
# 用客户端访问:redis-cli

在这里插入图片描述

sh
redis-cli -p 6379

6、Redis关闭

sh
redis-cli shutdown
# 在终端可以直接使用
shutdown

在这里插入图片描述

sh
# 实例关闭,指定端口关闭:redis-cli -p 6379 shutdown
# 暴力关闭
ps -ef | grep redis

在这里插入图片描述

sh
kill -9 16673

2、docker安装

  • 这里使用6.0.8版本安装
  • 找一个官网配置
  • 这是我去掉了注释的
sh
bind 127.0.0.1
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
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
rdb-del-sync-files no
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-load disabled
repl-disable-tcp-nodelay no
replica-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lazyfree-lazy-user-del no
oom-score-adj no
oom-score-adj-values 0 200 800
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
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
  • 这个配置放到 /usr/local/docker/redis/conf 目录下
  • 修改以下配置
sh
# 注释掉 bind 127.0.0.1
# bind 127.0.0.1
# 开启持久化
appendonly yes

protected-mode no

requirepass "redis_pass"
sh
docker run -p 6379:6379 --name redis \
-v /usr/local/docker/redis/data:/data \
-v /usr/local/docker/redis/conf/:/etc/redis/ \
-d redis:6.0.8 redis-server /etc/redis/redis.conf

3、查看自己redis版本

sh
redis-server -v