redis 学习(2)

一,安装redis 扩展

  php 官网 redis扩展下载地址 http://pecl.php.net/package/redis

  下载对应php版本(x64,x86 , hts ,ts,windows ,linux)的redis扩展

  复制包里的 php_redis.dll 到 php>ext 文件下

  php.ini 关联 php_redis.dll 文件

  phpinfo 查看是否成功

二,php 使用redis

  

/*  redis */
$redis = new Redis();
$redis->connect('localhost'); // 连接redis 服务器
$redis->auth('mypass');  // 设置密码 如果有的话
$redis->set('username','narsu');
echo $redis->get('username');

$redis->hmset('user:id',['username'=>'narsu','age'=>'28','email'=>'nalasu@163.com']);

 三,持久化机制

  1.快照方式持久化

    (1).每隔一段时间redis 会将 内存中的数据整体存储到硬盘中

    (2).默认开启,有触发条件

      redis.conf

      save 900 1  // 900秒内 超过1个key 被修改,则发起快照

      save 300 10 // 300 秒内 超过10个key被修改,发起快照

      save 60 1000  // 60 秒 超过 10000个key被修改 发起快照

      

     (3).硬盘数据文件名默认是  dump.rdb 可修改

      redis.conf  dbfilename 修改

      

 

     (4).手动保存

      redis-cli 登录状态 下   

        bgsave  // 保存

      未登录下

        ./bin/redis-cli -a mypass bgsave

    (5).缺点 

      redis意外挂掉将丢死最后一次快照保存之后的所有修改

    (6).其他配置

      stop-writes-on-bgsave-error  yes   // 后台备份进程出错时,主进程是否停止写入

      rdbcompression yes // 导出的rdb文件是否压缩

      Rdbchecksum  yes  // 导入rdb 回复数据时 是否校验rdb的完整性

      dbfilename dump.db // 导出的rdb 文件名

      dir ./   // rdb的路径

  2.append-only-file 追加方式持久化 AOF

    把用户执行的每个“写”指令(添加,修改,删除)都备份到文件中,还原数据的时候 就执行具体指令

    (1)开启  // redis.conf

      appendonly yes // 启用

      appendfielname appendonly.aof // 保存命令的文件

    (2)触发条件

      appendfsync always // 每次收到写入命令就执行写入磁盘(最慢最完全持久化)不推荐

      appendfsync everysec // 每分钟执行  折中方案 推荐

      appendfsync no  // 完全依赖 os,性能最好,持久化没保证

    (3)aof文件的重写

      如某个 string 被重复定义多次 aof 会记住每个命令 从而 文件会很大

        如 incr number 10次 压缩成 set number 11

 

      执行重写条件

        auto-aof-rewrite-percentage 100 // aof 文件大小比上次重写时的大小增长率100% 时重写

        auto-aof-rewrite-min-size 64mb // aof 文件至少64mb时重写

        no-appendfsync-on-rewrite yes // 正在导出rdb快照过程中 是否停止同步 aof

      手动执行重写

        登录状态  bgrewriteaof

        未登录  ./bin/redis-cli -a mypass bgrewriteaof

  注:aof 和rdb文件都在的情况下优先用aof 恢复数据

    重写就是把内存中的数据逆化成命令,写入到aof日志里

    推荐两种持续化方案都使用

    rdb 恢复数据快于 aof // 快照恢复速度快但是会被aof覆盖 同时开启 以aof为准

四,外网访问服务器redis

  1.开放端口

  2.redis.conf  bind 127.0.0.1 // 只允许127.0.0.1访问 注释掉

  3.redis.conf  protected-mode yes  // 禁止外网访问  改为no   允许

 

posted @ 2021-03-07 18:00  nalasu  阅读(43)  评论(0)    收藏  举报