三.Redis基础

本文最后更新于:2021年11月11日 晚上

Redis基础

基础操作

  • redis默认有16个数据库,在redis.conf中由database 16标识
  • 默认使用第0个数据库,可以使用select num切换数据库
  • 选择数据库后,使用命令DBSIZE可查看当前库中的数据量
  • keys *,查看当前库中的所有key的name
  • flushdb 清除当前库;FLUSHALL 清空全部数据库内容
  • EXIST [key-name],判断一个key是否存在,存在返回1,不存在返回0
  • MOVE [key-name],移除一个key
  • set [key-name] [key-value],为一个key设置具体值
  • get [key-name],获取key的具体值
  • EXPIRE [key-name] [int],设置key的过期时间
  • ttl [key-name],查询key当前的剩余时间,过期之后get的值为nul
  • type [key-name],查看当前key的类型

Redis是单线程的

官方表示,Redis是基于内存操作,CPU不是Redis的性能瓶颈,Redis的瓶颈来源于机器的内存和网络带宽,既然可以使用单线程来实现,那就使用单线程。

Redis是由C编写,官方数据说明Redis的QPS可达到100000+,完全不比同样是KV存储的Memcached差。

Redis为什么单线程还这么快?

  • 误区1:高性能的服务器一定是多线程的?
  • 误区2:多线程(存在CPU上下文切换成本)一定比单线程效率高?
  • 核心:Redis是将所有的数据全部放在内存中的,所以使用单线程去操作的效率就是最高的,多线程反而会由于CPU上下文切换产生耗时操作。对于内存系统来说,如果没有上下文切换,那效率就是最高的,多次读写都在一个CPU上,在数据保存在内存上是,单线程就是最佳方案!

本文作者: ziyikee
本文链接: https://ziyikee.fun/2021/11/10/Redis%E5%9F%BA%E7%A1%80/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!