[关闭]
@hainingwyx 2019-02-13T12:14:24.000000Z 字数 586 阅读 294

API的理解和使用1

redis


全局命令

  1. # 查看所有的键
  2. keys *
  3. # 键总数
  4. dbsize
  5. # 键是否存在,存在返回1,不存在返回0
  6. exists key
  7. # 删除键,返回成功删除的键的个数
  8. del key [key ...]
  9. # 键过期,超过过期时间后自动删除键
  10. expire key seconds
  11. # 查询键过期时间,-1表示键未设置过期时间, -2表示键不存在
  12. ttl key
  13. # 键的数据类型,不存在返回none
  14. type key

数据结构和内部编码

每种数据结构都有两种以上的内部编码实现。好处是:
1. 可以改进内部编码,而对外的数据结构和命令没有影响
2. 多种内部编码实现可以在不同的场景下发挥各自的优势

  1. # 查询内部编码
  2. object encoding key

单线程命令处理机制

redis使用单线程架构和IO多路复用模块实现高性能的内存数据库服务。速度快的原因主要是:
1. 纯内存访问,redis将所有数据放在内存中,内存的访问时间为100ns,这是能达到每秒万级别访问的重要基础。
2. 非阻塞IO,使用epoll作为多路IO复用技术的实现,再加上redis自身的事件处理模型将epoll中的连接、读写、关闭都转换为事件,不在网络IO上浪费过多的时间。
3. 单线程避免了线程切换和竞态产生的消耗。
单线程如果某个命令执行时间过长,会造成其他命令的阻塞,对于redis这种高性能的服务来说是致命的,所以redis是面向快速执行场景的数据库。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注