1 编译安装

官网地址:https://redis.io/topics/quickstart

1.1 运行一下命令进行安装

  1. wget http://download.redis.io/redis-stable.tar.gz
  2. tar xvzf redis-stable.tar.gz
  3. cd redis-stable
  4. make

运行make test进行测试

  1. # make test
  2. cd src && make test
  3. make[1]: Entering directory `/root/redis/redis-stable/src'
  4. CC Makefile.dep
  5. make[1]: Leaving directory `/root/redis/redis-stable/src'
  6. make[1]: Entering directory `/root/redis/redis-stable/src'
  7. You need tcl 8.5 or newer in order to run the Redis test
  8. make[1]: *** [test] Error 1
  9. make[1]: Leaving directory `/root/redis/redis-stable/src'
  10. make: *** [test] Error 2

出现以上报错是因为tcl版本太低,需要安装8.5及以上版本

  1. yum install -y tcl-devel

进入redis目录重新编译,并运行test命令

  1. make distclean
  2. make
  3. make test

将编译后的二进制文件拷贝纸/usr/bin下,主要是一下几个命令

  • redis-server :启动redis服务端的二进制文件
  • redis-cli:连接redis服务的客户端工具
  • redis-sentinel:启动哨兵的二进制文件
  • redis-benchmark:redis自带的压测工具
  • redis-check-aof:检查aof文件的工具
  • redis-check-rdb:检查rdb文件的工具

在编译后的目录下可以看到一个redis.conf和sentinel.conf的配置文件,这两个配置文件一个用于自定义启动server的配置,一个用于启动哨兵的配置,建议不要直接修改这两个文件,可以备份至/etc/redis/目录,后续所有的修改在/etc/redis目录下进行。

1.2 启动redis

默认情况下我们redis的启动后是直接运行在前端的,为了方便,我们可以修改一下配置使redis可以以守护进程的方式运行:

  1. daemonize yes

启动redis server

  1. redis-server /etc/redis/redis.conf

连接redis

  1. redis-cli -p 6379

1.3 redis的一些基本操作

redis是一个基于内存的key/value数据库。

  1. 127.0.0.1:6379> set name jack # 设置key:name ,value:jack
  2. OK
  3. 127.0.0.1:6379> get name # 获取name
  4. "jack"
  5. 127.0.0.1:6379> keys * # 查看当前库所有的key,默认是0库
  6. 1) "name"
  7. 127.0.0.1:6379> select 1 # 切换至1库
  8. OK
  9. 127.0.0.1:6379[1]> keys *
  10. (empty array)
  11. 127.0.0.1:6379[1]> select 0
  12. OK
  13. 127.0.0.1:6379> FLUSHDB # 清空当前库
  14. OK
  15. 127.0.0.1:6379> FLUSHALL # 清空所有库
  16. OK

2 docker 安装

以下为运行redis server的脚本

  1. docker rm -f redis-master
  2. current_dir=$(cd $(dirname $0);pwd)
  3. docker run -d --name redis-master \
  4. -p 6379:6379 \
  5. -v $current_dir/redis.conf:/etc/redis/redis.conf \
  6. -v $current_dir/data/:/data \
  7. -v /etc/localtime:/etc/localtime \
  8. redis:6.2.6 /etc/redis/redis.conf

需要准备一个配置文件,配置文件需要修改以下几个地方

  1. ################################# GENERAL #####################################
  2. # 以前端形式运行,如果守护进程运行,容器没有主进程无法启动
  3. daemonize no
  4. pidfile /var/run/redis_6379.pid
  5. loglevel notice
  6. logfile ""
  7. databases 16
  8. ################################## NETWORK #####################################
  9. bind 0.0.0.0
  10. protected-mode yes
  11. port 6379
  12. tcp-backlog 511
  13. timeout 0
  14. tcp-keepalive 300
  15. ################################ SNAPSHOTTING ################################
  16. save 3600 1
  17. save 300 100
  18. save 60 10000
  19. stop-writes-on-bgsave-error yes
  20. rdbchecksum yes
  21. dbfilename dump.rdb
  22. rdb-del-sync-files no
  23. dir /data # 持久化存放路径,会存放例如rdb、aof、cluster模式下的配置文件等
  24. ################################## SECURITY ###################################
  25. requirepass 123456
  26. ############################## APPEND ONLY MODE ###############################
  27. appendonly no # 未开启aof
  28. appendfilename "appendonly.aof"
  29. appendfsync everysec
  30. no-appendfsync-on-rewrite no
  31. auto-aof-rewrite-percentage 100
  32. auto-aof-rewrite-min-size 64mb
  33. aof-load-truncated yes
  34. aof-use-rdb-preamble yes

执行以上脚本即可启动一个单机的redis server。