乐趣区

Redis-API使用和理解

通用命令

  • keys:查看所有的 key 复杂度 o(n)
  • dbsize: 计算 key 的总数,复杂度 O(1)
  • exists: 检查 key 是否存在,复杂度 O(1)
  • del: 删除指定 key-value, 复杂度 O(1)
  • expire key seconds:key 在 second 秒后过期, 复杂度 O(1)
  • ttl key:查看 key 多久过期 , 复杂度 O(1)
  • persist key: 去掉 key 的过期时间, 复杂度 O(1)
  • type key: 返回 key 的类型, 复杂度 O(1)

数据结构和内部编码

单线程架构

单线程为什么这么快

* 纯内存
* 非阻塞 IO
* 避免线程切换和竞态消耗

  

单线程注意什么

 * 一次只运行一条命令
 * 拒绝长(慢)命令
 * 其实不是单线程
 fysnc file descrptor
 close file descriptor

5 中数据结构
1. 字符串
key value
hello world
counter 1
bits 1010101022

最大 512M
场景

  • 缓存
  • 计数器
  • 分布式锁

常见命令
get
set key value #不管 key 是否存在,都设置
setnx key value #key 不存,才设置
set key value xx#key 存在,才设置
del
incr o(1)
decr o(1)
incrby o(1)
decrby o(1)

退出移动版