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个字节的字符串