Skip to content

Redis 介绍和基本命令

#NoSQL #Redis #数据库

Redis 介绍

  • Redis 是一个开源的 key-value 存储系统;
  • 支持存储类型有String、List、Hash、Set、ZSet(SortedSet)
  • Redis 支持不同类型的排序;
  • 数据在内存中;
  • Redis 会周期性的把更新的数据写入磁盘或者把修改的操作写入追加的记录文件(持久化操作);
  • 可以实现 master-slave(主从) 同步;

Redis 使用场景

  • 高频词、热门访问的数据,降低数据库 IO;
  • 分布式架构,做 session 共享;

Redis 相关知识点

  • 默认 16 个数据库;
  • 实现方式是单线程+多路 IO 复用
  • Redis 操作原子性的原因是单线程操作,不存在线程安全问题; 注意: Redis 6.0 虽然使用了多线程模型,但是只有在网络请求的接收和解析,以及请求后的数据通过网络返回给时,使用了多线程。而数据读写操作还是由单线程来完成的(所以不存在数据安全问题)

Redis 常用基本命令

  • keys * 查询当前库所有 key;
  • keys *1 查询当前库匹配 key,代表通配符,可选位置,但是注意,此处_代表 0 或多个字符,比如查询 keys k*1, 可能查询到 k1\k11\k111 等所有 key 值;
  • exists <key> 判断某个 key 值是存在;
  • type <key> 查询 key 值类型;
  • del <key> 删除 key 值;
  • unlink <key> 同上,异步操作,现将 key 从 keyspace 元数据中删除,然后再异步删除真实数据;
  • expire <key> 给 key 设置过期时间,默认单位为秒;
  • ttl <key> 查询还有多久过期,单位为秒;-1 为永不过期,-2 为已过期数据或不存在数据;
  • select 命令切换数据库;
  • dbsize 查询当前库 key 数量;
  • flushdb 清空当前库;
  • flushall 清空所有库;

学而时习之,不亦说乎?