一. Redis的介绍
Redis 是一个Key-Value存储的系统;它支持存储的value类型有string(字符串),list(列表),set(集合),zset(有序集合);为了保证效率;数据都缓存在内存中;它也周期性将内存数据写入磁盘或者把读写操作写入记录文件。Redis使用单线程模型;还有其他特性:例如健过期,发布/订阅,事务功能等等。
相比其他个Key-Value存储的系统;有这些优势:
- 数据的持久性;Redis会周期性将内存数据写入磁盘和将读写操作写入记录文件。保证数据库在重启之后数据不丢失
- 支持master-slave模式;主从复制
- 支持存储value类型多样性;有list(列表),set(集合),zset(有序集合),bitmap等等。
- 在3.0版本正式提供了高可用分布式架构Redis Cluster集群;提供了高可用性,读写和容量的扩展。
二. Redis的安装与部署
2.1 下载地址
2.2 安装
tar -zxvf redis-5.0.0.tar.gz cd redis-5.0.0 make cd src make install PREFIX=/usr/local/redis mkdir -p /usr/local/redis/etc mv ../redis.conf /usr/local/redis/etc
2.3 创建redis用户
习惯了使用非root用户来管理数据库;前提我们需要创建redis用户和相关目录
useradd redis mkdir -p /data/redis/{logs,conf,pid,data} chown -R redis:redis /data/redis
配置redis;在/data/redis/conf目录下创建redis-6379.conf文件;内容如下
###基本参数### daemonize yes pidfile /data/redis/pid/redis-6379.pid port 6379 tcp-backlog 65535 bind 0.0.0.0 timeout 0 tcp-keepalive 0 loglevel notice logfile /data/redis/logs/redis-6379.log databases 16 lua-time-limit 5000 maxclients 10000 protected-mode yes dir /data/redis/data/ ###慢日志参数### slowlog-log-slower-than 10000 slowlog-max-len 128 ###内存参数### #maxmemory 1G #maxmemory-policy volatile-lru ###RDB持久化参数### save 3600 1 stop-writes-on-bgsave-error yes rdbcompression yes rdbchecksum yes dbfilename "dump-6379.rdb" ###AOF持久化参数### no-appendfsync-on-rewrite yes appendonly yes appendfilename "appendonly-6379.aof" appendfsync no auto-aof-rewrite-min-size 512mb auto-aof-rewrite-percentage 100 aof-load-truncated yes aof-rewrite-incremental-fsync yes ###客户端Buffer参数### client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 ###其他参数### hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 hll-sparse-max-bytes 3000 activerehashing yes latency-monitor-threshold 0 hz 10 ###安全参数### requirepass li0924 # masterauth 123456789 rename-command KEYS REDIS_KEYS rename-command FLUSHDB REDIS_FLUSHDB rename-command FLUSHALL REDIS_FLUSHALL ###复制参数(从库)### ###集群参数###
相关配置参数:
- daemonize:如需要在后台运行,把该项的值改为yes
- pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
- bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
- port:监听端口,默认为6379
- timeout:设置客户端连接时的超时时间,单位为秒
- loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
- logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
- database:设置数据库的个数,默认使用的数据库是0
- save:设置redis进行数据库镜像的频率
- rdbcompression:在进行镜像备份时,是否进行压缩
- dbfilename:镜像备份文件的文件名
- dir:数据库镜像备份的文件放置的路径
- slaveof:设置该数据库为其他数据库的从数据库
- masterauth:当主数据库连接需要密码验证时,在这里设定
- requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
- maxclients:限制同时连接的客户端数量
- maxmemory:设置redis能够使用的最大内存
- appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
- appendfsync:设置appendonly.aof文件进行同步的频率
- vm_enabled:是否开启虚拟内存支持
- vm_swap_file:设置虚拟内存的交换文件的路径
- vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
- vm_page_size:设置虚拟内存页的大小
- vm_pages: