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
    
    
    
  • 24
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值