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个字节的字符串
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。