redis 一 认识redis
认识redis
- redis 是什么
- redis 是一款开源的非关系型数据库,我们可以得到他的源码。
redis 基于键值对进行存储服务 类似于java map、python dict
redis 支持多种数据类型
- redis 特性
- 轻量级 最初版本只有2万行代码
速度快 10W OPS(官方) C语言实现
持久化 拥有两种持久化方式、断电不丢失数据
支持多种语言
主从复制
高可用、分布式
- redis 使用场景
- 缓存服务器
消息队列
计数器
社交网络
- redis 安装
-
1、yum 安装 [root@redis1 ~]# yum install -y epel-release [root@redis1 ~]# yum install -y redis 2、编译安装 # 部署redis 环境 [root@redis-master ~]# mkdir -p /data/application ---创建工作目录 [root@redis-master ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz ---下载redis [root@redis-master ~]# tar xzf redis-4.0.9.tar.gz -C /data/application/ ---解压 [root@redis-master ~]# cd /data/application/ [root@redis-master application]# mv redis-4.0.9/ redis [root@redis-master application]# cd redis/ [root@redis-master redis]# yum install -y gcc make #安装编译工具 [root@redis-master redis]# make 注:如果报错请将刚才解压的安装包删除掉,再次重新解压并进行make安装即可。 [root@redis-master redis]# cp redis.conf redis.conf.bak [root@redis-master redis]# vim redis.conf ---修改如下 bind 192.168.246.202 #只监听内网IP daemonize yes #开启后台模式将on改为yes timeout 300 #连接超时时间 port 6379 #端口号 dir /data/application/redis/data #本地数据库存放持久化数据的目录该目录-----需要存在 pidfile /var/run/redis_6379.pid #定义pid文件 logfile /var/log/redis.log #定义log文件 创建存放数据的目录 [root@redis-master redis]# mkdir /data/application/redis/data 配置redis为systemctl启动 [root@redis-master redis]# cd /lib/systemd/system [root@redis-master system]# vim redis.service [Unit] Description=Redis After=network.target [Service] ExecStart=/data/application/redis/src/redis-server /data/application/redis/redis.conf --daemonize no ExecStop=/data/application/redis/src/redis-cli -h 127.0.0.1 -p 6379 shutdown [Install] WantedBy=multi-user.target 参数详解: • [Unit] 表示这是基础信息 • Description 是描述 • After 是在那个服务后面启动,一般是网络服务启动后启动 • [Service] 表示这里是服务信息 • ExecStart 是启动服务的命令 • ExecStop 是停止服务的指令 • [Install] 表示这是是安装相关信息 • WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。 启动服务: [root@redis-master system]# systemctl daemon-reload [root@redis-master system]# systemctl start redis.service
- redis 配置说明
-
[root@redis1 ~]# cat /etc/redis.conf |grep -v '^#'|grep -v '^$' #绑定地址: bind 127.0.0.1 #安全模式 当开启后,禁止公网访问redis。它启用的条件有两个,第一是没有使用bind,第二是没有设置访问密码。 protected-mode yes #监听端口 port 6379 tcp-backlog 511 #超时时间,当客户端闲置多少秒后关闭连接,如果设置为0表示关闭该功能。 timeout 0 #单位是秒,表示将周期性的使用SO_KEEPALIVE检测客户端是否还处于健康状态,避免服务器一直阻塞,官方给出的建议值是300S tcp-keepalive 300 #是否已守护进程启动 daemonize no #可以通过upstart和systemd管理Redis守护进程,这个参数是和具体的操作系统相关的。 supervised no #pid文件位置 pidfile /var/run/redis_6379.pid #日志级别 loglevel notice logfile /var/log/redis/redis.log #数据库个数,可以通过select 切换 0-15 databases 16 #保存数据到磁盘。格式是:save <seconds> <changes> ,含义是在 seconds 秒之后至少有 changes个keys 发生改变则保存一次。 save 900 1 save 300 10 save 60 10000 #如果最后一次保存失败就停止写操作,如果监控得当,此处可以修改为no stop-writes-on-bgsave-error yes #是否在dump.rdb数据库的时候压缩字符串,默认设置为yes。如果你想节约一些cpu资源的话,可以把它设置为no,这样的话数据集就可能会比较大。 rdbcompression yes #是否校验rdb文件的完整性 rdbchecksum yes #rdb方式文件名 dbfilename dump.rdb #备份文件位置 dir /var/lib/redis #当一个slave与master失去联系时,或者复制正在进行的时候,slave应对请求的行为:1) 如果为 yes(默认值) ,slave 仍然会应答客户端请求,但返回的数据可能是过时,或者数据可能是空的在第一次同步的时候;2) 如果为 no ,在你执行除了 info 和 salveof 之外的其他命令时,slave 都将返回一个 "SYNC with master in progress" 的错误。 slave-serve-stale-data yes #从库只读 slave-read-only yes #主从数据复制是否使用无硬盘复制功能。无磁盘diskless方式适合磁盘读写速度慢但网络带宽非常高的环境。 repl-diskless-sync no #无磁盘diskless方式适合磁盘读写速度慢但网络带宽非常高的环境。 repl-diskless-sync-delay 5 #slave端向server端发送pings的时间区间设置,默认为10秒 repl-disable-tcp-nodelay no #哨兵机制选举的优先级,越小优先级越高,0为放弃选举,默认为100 slave-priority 100 #aof持久化配置,默认关闭 appendonly no appendfilename "appendonly.aof" #aof文件刷新的频率。有三种: ##1)no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。 ##2) always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。 ##3) everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。 appendfsync everysec #指定是否在后台aof文件rewrite期间调用fsync,默认为no,表示要调用fsync(无论后台是否有子进程在刷盘)。Redis在后台写RDB文件或重写AOF文件期间会存在大量磁盘IO,此时,在某些linux系统中,调用fsync可能会阻塞。 no-appendfsync-on-rewrite no #aof 文件重写机制 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb #redis在启动时可以加载被截断的AOF文件,而不需要先执行 redis-check-aof 工具。 aof-load-truncated 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 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes
原文地址:https://blog.csdn.net/weixin_60250117/article/details/140147456
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!