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