Redis 使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库服务。
为什么Redis使用单线程莫O型会达到每秒万级别的处理能力?

  • 纯内存访问
  • 非阻塞I/O,Reis使用epoll作为I/O多路复用技术的实现,再加上Redis自身的时间处理模型将epoll中的连接、读写、关闭都转换为时间,不再网络I/O上浪费过多的时间。
  • 单线程避免了线程切换和竞态产生的消耗。

常用命令:
set key value [ex second] px[millsenconds] [nx|xx]
set 命令有几个选项:

  • ex seconds : 为键设置秒级过期时间
  • px millseconds :为键设置毫秒级过期时间
  • nx :键必须不存在,才可以设置成功,用于添加
  • xx :键必须存在,才可以设置成功,用于更新

    获取值
    get key
    批量设置值
    mset key1 value1 key2 value2
    批量获取kkeu
    mget key1 key2
    计数
    incr key
    incr 命令用于对值做自增操作,返回结果分三种情况

    • 值不少整数,返回错误
    • 值是整数,返回自增后的结果
    • 键不存在,按照值位0自增,返回结果是1

不常用命令:

  • append key value 向字符串尾部追加值
  • strlen key 字符串长度
  • getset key value 设置并返回原值
  • setrange key offset value 设置指定位置的字符串
  • getrange key start end 获取指定部分的字符串

内部编码
字符串类型内部的编码有3种

  • int : 8 个字节的长整型
  • embstr :小于等于39个子节点字符串
  • raw : 大于39个字节的字符串

林慫慫
11 声望0 粉丝