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