• redis高级部分等相关内容-146


    1 Redis介绍安装配置

    1 安装

    #下载
    wget http://download.redis.io/releases/redis-5.0.7.tar.gz
    #解压
    tar -xzf redis-5.0.7.tar.gz
    #建立软连接
    ln -s redis-5.0.7 redis
    cd redis
    make&&make install
    #在src目录下可以看到
    #redis-server--->redis服务器
    #redis-cli---》redis命令行客户端
    #redis-benchmark---》redis性能测试工具
    #redis-check-aof--->aof文件修复工具
    #redis-check-rdb---》rdb文件检查工具
    #redis-sentinel---》sentinel服务器,哨兵
    #redis作者对windows维护不好,window自己有安装包

    # 在任意路径执行redis-server 都能运行起redis服务
    -把可执行文件加入环境变量
      -用户变量(用户家路径下:.bash_profile)
           -系统变量
       -把可执行文件在usr路径下建立软链接

    ####卸载redis
    # 1、查看redis进程;
       ps aux|grep redis
       # 2、kill掉进程;
       kill 进程id
       # 3、进入到redis目录
       cd /usr/local/
       # 4、删除redis对应的文件
       rm -f /usr/local/redis/bin/redis*
       rm -f /usr/local/bin/redis*
       # 5、删除对应的文件
       rm -rf redis
    # 简单启动服务
    redis-server
    # 动态参数启动
    redis-server --port 6380
    # 重点:通过配置文件启动
    #配置文件启动(6379对应手机按键MERZ,意大利女歌手Alessia Merz的名字)
       #####通过redis-cli连接,输入config get * 可以获得默认配置
       #在redis目录下创建config目录,copy一个redis.conf文件
       #daemonize--》是否是守护进程启动(no|yes)
       #port---》端口号
       #logfile--》redis系统日志
       #dir--》redis工作目录
       bind 0.0.0.0
       daemonize NO
       protected-mode no
       requirepass 123456
    # 普通客户端链接
    redis-cli -h ip -p port
    redis-cli
    # 带密码的
       # 方式一
       redis-cli -h 127.0.0.1  -p 6370 -a 123456
       # 方式二
       redis-cli -h 127.0.0.1  -p 6370
       先登陆,再通过auth输入密码
       
    # 注意
    CONFIG GET *   一百多对建值
    CONFIG SET maxmemory 128M  # 设置最大使用的内存
    CONFIG set requirepass 123456  # 设置密码
    CONFIG REWRITE  # 保存到配置文件

     

    2 API的使用

    http://liuqingzheng.top/db/Redis%E7%B3%BB%E5%88%97/01-Redis%E7%B3%BB%E5%88%97%E4%B9%8B-API%E7%9A%84%E4%BD%BF%E7%94%A8/

     

    3 高级用法

    # 慢查询相关
    # pipeline与事务
    -pipeline每次只能作用在一个Redis的节点上(如果做了集群,就没有pipline了)
       
      -悲观锁和乐观锁
      -redis只能实现乐观锁:https://www.cnblogs.com/liuqingzheng/p/9997092.html
      # 2 模拟乐观锁
           # 在开启事务之前,先watch
           wathc age
           multi
           decr age
           exec

           # 另一台机器
           mutil
           decr age
           exec  # 先执行,上面的执行就会失败(乐观锁,被wathc的事务不会执行成功)
           
           
           
    # 发布订阅
    #Bitmap位图
    # HyperLogLog:极小的空间完成独立数量统计
    -pfadd key element  增加(重复了不会增加)
       -pfcount key         统计个数
       -去重,独立用户统计,有错误率
       
    # GEO(redis,es)
    # 插入
       geoadd cities:locations 116.28 39.55 beijing #把北京地理信息天津到cities:locations中
       geoadd cities:locations 117.12 39.08 tianjin
       geoadd cities:locations 114.29 38.02 shijiazhuang
       geoadd cities:locations 118.01 39.38 tangshan
       geoadd cities:locations 115.29 38.51 baoding
       # 计算北京到天津的距离
       geodist cities:locations beijing tianjin km
    # 计算北京方圆150km内的城市
       georadiusbymember cities:locations beijing 150 km

     

    4 持久化

    rdb方案

    # 两种:
    -rdb:缓存
       -aof:对数据准确性要求高一些
    # rdb:触发方式三种
    -手动 save
     
       -手动 bgsave
       
       -配置文件
       配置   seconds   changes
       save   900        1
       save   300        10
       save   60         10000
       
       
    # 最佳配置
    save 900 1
    save 300 10
    save 60 10000
    dbfilename dump-3306.rdb  #以端口号作为文件名,可能一台机器上很多reids,不会乱
    dir /bigdiskpath #保存路径放到一个大硬盘位置目录
    stop-writes-on-bgsave-error yes #出现错误停止
    rdbcompression yes #压缩
    rdbchecksum yes #校验

    aof

    客户端每写入一条命令,都记录一条日志,放到日志文件中,如果出现宕机,可以将数据完全恢复

    # AOF 重写
    本质就是把过期的,无用的,重复的,可以优化的命令,来优化
    这样可以减少磁盘占用量,加速恢复速度
       
       
    # aof的最佳配置
    appendonly yes #将该选项设置为yes,打开
    appendfilename "appendonly-3306.aof" #文件保存的名字
    appendfsync everysec #采用第二种策略
    dir /data #存放的路径
    no-appendfsync-on-rewrite yes

     

    5 主从复制原理与优化

    # 手动配置
    在6380上执行(去从库配置,配置主库)
    # 127.0.0.1 6379主库
    # 127.0.0.1 6380 从库
    # 在从库上执行,就建立了主从
    slaveof 127.0.0.1 6379 #异步
    # 取消主从
    slaveof no one #取消复制,不会把之前的数据清除


    # 配置文件配置
    daemonize no
    pidfile redis.pid
    bind 0.0.0.0
    protected-mode no
    port 6379
    timeout 0
    logfile redis.log
    dbfilename dump.rdb
    dir /data
    # 指定主库为10.0.0.101 6379
    slaveof 10.0.0.101 6379
    # 从库只读
    slave-read-only yes

     

  • 相关阅读:
    Spring 配置数据源的几种方式
    Java List 数据操作
    javascript 数组方法解析
    jQuery 获取页面元素的属性值
    表格列排序
    优秀资源的收集
    Java 集合介绍
    二进制、八进制、十进制、十六进制的转换
    Nginx配置
    Nginx安装
  • 原文地址:https://www.cnblogs.com/usherwang/p/14470991.html
Copyright © 2020-2023  润新知