[关闭]
@File 2019-10-12T03:25:41.000000Z 字数 5597 阅读 60

redis 安装

系统


一、windows安装

https://github.com/MicrosoftArchive/redis/releases

二、linux安装

1. 安装

  1. #ubuntu
  2. sudo apt-get update
  3. sudo apt-get install redis-server
  4. #centos
  5. sudo yum instal redis-server

2. 启动redis

  1. redis-server

3. 查看 redis 是否启动

  1. redis-cli
  2. redis 127.0.0.1:6379>

4. 开机启动

第一步 编辑文件

  1. # 第一步
  2. sudo vi /etc/init.d/redis

第二步 编辑脚本复制如下代码

注意要修改里面redisd的安装路径(通过命令安装默认路径)

  1. # chkconfig: 2345 90 10
  2. # description: Redis is a persistent key-value database
  3. PATH=/usr/local/bin
  4. REDISPORT=6379
  5. EXEC=/usr/local/bin/redis-server
  6. REDIS_CLI=/usr/local/bin/redis-cli
  7. #Redis密码 注意修改成你的
  8. PASSWORD=123456
  9. PIDFILE=/var/run/redis.pid
  10. CONF="/usr/local/reids/conf/redis.conf"
  11. case "$1" in
  12. start)
  13. if [ -f $PIDFILE ]
  14. then
  15. echo "$PIDFILE exists, process is already running or crashed"
  16. else
  17. echo "Starting Redis server..."
  18. $EXEC $CONF
  19. fi
  20. if [ "$?"="0" ]
  21. then
  22. echo "Redis is running..."
  23. fi
  24. ;;
  25. stop)
  26. if [ ! -f $PIDFILE ]
  27. then
  28. echo "$PIDFILE does not exist, process is not running"
  29. else
  30. PID=$(cat $PIDFILE)
  31. echo "Stopping ..."
  32. $REDIS_CLI -p $REDISPORT -a $PASSWORD SHUTDOWN
  33. while [ -x ${PIDFILE} ]
  34. do
  35. echo "Waiting for Redis to shutdown ..."
  36. sleep 1
  37. done
  38. echo "Redis stopped"
  39. fi
  40. ;;
  41. restart|force-reload)
  42. ${0} stop
  43. ${0} start
  44. ;;
  45. *)
  46. echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
  47. exit 1
  48. esac

第四步 将启动脚本复制到/etc/init.d目录下,本例将启动脚本命名为redisd(通常都以d结尾表示是后台自启动服务)

  1. cp redisd /etc/init.d/redisd

3、Mac 安装

  1. 安装
  1. brew install redis
  1. 启动redis
  1. redis-server
  2. redis 127.0.0.1:6379>
  1. 查看 redis 是否启动
  1. redis-cli
  1. 其它
  1. 开机启动redis命令
  2. $ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
  3. 使用launchctl启动redis server
  4. $ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
  5. 使用配置文件启动redis server
  6. $ redis-server /usr/local/etc/redis.conf
  7. 停止redis server的自启动
  8. $ launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
  9. redis 配置文件的位置
  10. /usr/local/etc/redis.conf
  11. 卸载redis和它的文件
  12. brew uninstallredis rm ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
  13. 测试redis server是否启动
  14. $ redis-cli ping

三、配置文件

  1. linux 系统配置
  1. port 7000 //端口7000,7002,7003
  2. bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
  3. daemonize yes //redis后台运行
  4. pidfile /var/run/redis_7000.pid //pidfile文件对应7000,7001,7002
  5. cluster-enabled yes //开启集群 把注释#去掉
  6. cluster-config-file nodes_7000.conf //集群的配置 配置文件首次启动自动生成 7000,7001,7002
  7. cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
  8. appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
  1. # 启动redis,显示加载配置redis.conf
  2. # ./redis-server /path/to/redis.conf
  3. # 停止redis
  4. # redis-cli -h IP -p PORT shutdown
  5. # 可以包含一个或多个其他配置文件,如果多个redis服务器存在标准配置模板,但是每个redis服务器可能有个性化的配置
  6. # include /path/to/local.conf
  7. # include /path/to/other.conf
  8. # bind的是网络接口。对于一个redis服务器来说可以有一个或者多个网卡。比如服务器上有两个网卡:
  9. # bind 192.168.1.100 192.168.1.101,
  10. #如果bind bind 192.168.1.100,则只有该网卡地址接受外部请求,如果不绑定,则两个网卡都接受请求
  11. # bind 192.168.1.100 192.168.1.101
  12. # bind 127.0.0.1 ::1
  13. # 监听端口号,默认为6379,如果为0监听任连接
  14. port 6379
  15. # TCP连接中已完成队列的长度
  16. tcp-backlog 511
  17. #客户端和Redis服务端的连接超时时间,默认为0表示永不超时
  18. timeout 0
  19. # 服务端周期性时间(单位秒)验证客户端是否处在健康状态,避免服务端一直阻塞
  20. tcp-keepalive 300
  21. # Redis以后台守护进程形式启动
  22. daemonize yes
  23. # 配置PID文件路径,当redis以守护进程启动时,它会把PID默认写到 /var/redis/run/redis_6379.pid文件里面
  24. pidfile "/var/run/redis_6379.pid"
  25. #Redis日志级别:debug,verbose,notice,warning,级别一次递增
  26. loglevel notice
  27. #日志文件路径及名称
  28. logfile ""

四、Redis基础知识

  1. 端口:6379
  2. 默认16个数据库,下标从0开始
  3. 单线程:redis是单线程+io多路复用:检查文件描述的就绪状态

五、 Redis配置

redis的核心配置文件为redis的解压目录下名为redis.windows-service.conf的模板文件,拷贝一份重命名为redis.conf文件。

1. 安全登录

image_1dmunrstb1tr71ma3dq81b5l2b99.png-14.6kB

image_1dmuns7q8get1es9or91pp3h6hm.png-20kB

image_1dmunsomc16vi1b08136512fp1j1513.png-33.8kB

image_1dmunt1qk1ciq10iglevtc1cs81g.png-24.2kB

image_1dmuntavg5945k9alfdr5tp31t.png-49.4kB

2. 数据的持久化

image_1dmuntnihf8u15uv14og1el7j542a.png-58.8kB

image_1dmunu263sqbfn21s6j1133v9o2n.png-35.4kB

3. 主从备份(灾备)(Master-Slave)

image_1dmunu9vi190ggm41eu91e5s1v3g34.png-32.6kB

六、 Redis 持久化之RDB和AOF

Redis 有两种持久化方案,RDB(Redis DataBase)和 AOF (Append Only File).

1. RDB存储

RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。在5.2小结已经涉及到该存储的方式。

2. AOF存储

Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。Redis 重启的会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。

image_1dmunupb21mb1rhe9sh2oc4ga3h.png-17.2kB

image_1dmunv5cq1jlv11jb10q9112om2r3u.png-28.6kB

3. 总结

  1. Redis 默认开启RDB持久化方式,在指定的时间间隔内,执行指定次数的写操作,则将内存中的数据写入到磁盘中。
  2. RDB 持久化适合大规模的数据恢复但它的数据一致性和完整性较差。
  3. Redis 需要手动开启AOF持久化方式,默认是每秒将写操作日志追加到AOF文件中。
  4. AOF 的数据完整性比RDB高,但记录内容多了,会影响数据恢复的效率。
  5. Redis 针对 AOF文件大的问题,提供重写的瘦身机制。
  6. 若只打算用Redis 做缓存,可以关闭持久化。
  7. 若打算使用Redis 的持久化。建议RDB和AOF都开启。其实RDB更适合做数据的备份,留一后手。AOF出问题了,还有RDB。

七、 Linux中Redis的安装

image_1dmunvlen1atq5ih1r0cdp153f4b.png-29kB

执行 make 命令

  1. make

image_1dmuo06j61utr1g7phhu17h9fnh4o.png-18.8kB

如果在使用make命令的时候出现如上的错误,执行以下命令:

  1. apt install gcc automake autoconf libtool make

再次执行 make 命令即可,如果出现错误,可以使用 如下命令:

  1. make MALLOC=libc

启动Redis, 进入到src目录下,执行如下命令:

  1. ./redis-server

八、 Redis集群

A. 在redis的解压目录下新建rediscluster文件夹,将redis的解压目录下的redis.conf文件拷贝到rediscluster目录下,将该文件复制六份,名字分别为:

B. 以redis-6379.conf文件为例,修改其中的内容,修改部分内容如下:

  1. port 6379
  2. cluster-enabled yes
  3. cluster-config-file /redis/nodes/nodes-6379.conf #该文件和文件夹不用手动创建
  4. cluster-node-timeout 15000

C. 分别启动六个redis服务,命令如下:

  1. src/redis-server ../rediscluster/redis-6379.conf &
  2. src/redis-server ../rediscluster/redis-6380.conf &
  3. src/redis-server ../rediscluster/redis-6381.conf &
  4. src/redis-server ../rediscluster/redis-6382.conf &
  5. src/redis-server ../rediscluster/redis-6383.conf &
  6. src/redis-server ../rediscluster/redis-6384.conf &

image_1dmuo0rv6mltahh1805au11fnk55.png-54.5kB

D. 配置集群,进入到redis的src目录下,执行如下命令:

  1. ./redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1

image_1dmuo18p71rhj1dk435ee7r8an5i.png-56.4kB

E. shell脚本启动,脚本内容如下:

  1. #!/bin/bash
  2. `/redis/redis-5.0.5/src/redis-server /redis/rediscluster/redis-6379.conf > /dev/null &` &&
  3. `/redis/redis-5.0.5/src/redis-server /redis/rediscluster/redis-6380.conf > /dev/null &` &&
  4. `/redis/redis-5.0.5/src/redis-server /redis/rediscluster/redis-6381.conf > /dev/null &` &&
  5. `/redis/redis-5.0.5/src/redis-server /redis/rediscluster/redis-6382.conf > /dev/null &` &&
  6. `/redis/redis-5.0.5/src/redis-server /redis/rediscluster/redis-6383.conf > /dev/null &` &&
  7. `/redis/redis-5.0.5/src/redis-server /redis/rediscluster/redis-6384.conf > /dev/null &`
  8. sleep 3s
  9. `/redis/redis-5.0.5/src/redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 --cluster-replicas 1 > /dev/null &`
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注