• redis 学习笔记(2)


    redis

    pipeline

    1. 传统 request/response 协议

      • Client 向 server 发送查询,阻塞等待 server 的 response
      • server 处理查询,返回结果
    2. pipeline

      1. 是什么

        即使 client 没有收到 response,依旧可以发送 request,最后才处理旧的 response

      2. 注意

        当 client 使用 pipeline 向 server 发送请求时,server 需要使用一定的内存,按顺序存储相应的 response,所以如果需要使用流水线发送大量命令,则最好以具有合理数量的批处理形式发送它们,例如 10k 命令,阅读答复,然后再次发送 10k 命令,依此类推

      3. 优点

        • 减少 RTT 时间
        • 提高在给定的Redis服务器中每秒可执行的总操作量:socket I/O 花费极大,系统倒影读写操作,从用户域到内核域,包括上下文切换也是
        • 处理速度提高近 10 倍
    3. scripting lua

      • 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络时延

      • 原子操作。redis会将整个脚本作为一个整体执行,中间不会被其他命令插入。因此在编写脚本的过程中无需担心会出现竞态条件,无需使用事务。

      • 复用。客户端发送的脚步会永久存在redis中,这样,其他客户端可以复用这一脚本而不需要使用代码完成相同的逻辑。

      • eval 用来直接执行 lua 脚本:
        EVAL script numkeys key [key ...] arg [arg ...]
        
        > eval "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second
        1) "key1"
        2) "key2"
        3) "first"
        4) "second"
        

    redis 配置

    Redis可以在不使用内置默认配置的配置文件的情况下启动,但是建议仅将此设置用于测试和开发目的。

    配置Redis的正确方法是提供一个Redis配置文件,通常称为redis.conf

    指令格式:keyword argument1 argument2 ... argumentN

    1. 命令行传递参数

      • ./redis-server --port 6380 --slaveof 127.0.0.1 6379
      • 命令行传递的参数的格式与 redis.conf 文件中使用的参数的格式完全相同,但关键字的前缀为--
      • 这会在内部生成一个内存中的临时配置文件(可能会连接用户传递的配置文件(如果有)),其中参数被转换为 redis.conf 格式。
    2. 服务器运行时传递参数

      • config set config get 可以在不停止和重启服务的情况下设置和查询配置信息
      • 运行时的配置修改不会影响 redis.conf 文件内容,下次启动服务仍然使用旧的配置信息
      • config rewrite 可以更新 redis.conf 内容,未涉及的配置内容和注释部分不会更改
    3. 将 redis 配置为缓存

      • 将 redis 设置为缓存,那么每个 key 都会有一个过期限制,就不用单独设置 expire time 了

      • 例如如下设置,当超过 2mb 的内存限制,便会过期
        maxmemory 2mb
        maxmemory-policy allkeys-lru
        
  • 相关阅读:
    Linux(debian)安装Redis教程
    Linux下Nginx学习笔记
    Linux常用命令
    MySQL代码片段
    MySql学习笔记
    漂亮的Web颜色
    Electron开发问题总结
    Git 教程
    Python基础
    【原创】servlet+spring+mybatis配置总结
  • 原文地址:https://www.cnblogs.com/leafs99/p/redis_learning_02.html
Copyright © 2020-2023  润新知