端口6379如何而来

当我们启动Redis的时候启动的是6379端口,为什么是6379呢?
有种说法是6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字.antirez(作者)及其朋友把MERZ当作愚蠢的代名词,但这仅仅只是一种说法,实际上antirez的一篇博文中向大家解释为什么他选择6379作为默认端口号.这篇博文官方的解释了Redis的LRU机制之后,向大家解释了采用6379作为默认端口的原因.

默认使用16个数据库

16个数据库的编号类似于数组的下标一样从0开始,进入客户端后默认进入0号库,需要切换到其他数据库时可使用select 下标来切换

Redis只有一个密码

Redis并没有用户之说,但可以设置一个密码,这个密码是所有数据库都是通用的

Redis是单线程+多路IO复用技术

多路IO复用技术的前提是单线程,只要是线程肯定会遇到锁和堵塞的问题,而多路IO复用就类似于一种监视器,当有多个进程访问redis的时候都会加上一个监视,监视该请求是否请求完毕,如果请求完毕则让Redis直接进行处理,让其没有等待这一步骤。
以前的线程是在接受到请求才去判断该请求是否准备完成,如果没有完成则等待到准备完成,这种现象我们称之为堵塞状态。
虽然是单线程,但是因为多路IO复用的技术让其没有等待这一步骤,让Redis一直工作,不存在堵塞状态,这种情况下的单线程要比多线程还快

堵塞IO,非堵塞IO与IO多路复用

至于堵塞IO和非堵塞IO的理解可以参考尚硅谷的一个解释,挺通俗易懂的

redis为什么没到期也会删除 redis为什么6379_Redis

串行 VS 多线程+锁(memcached) VS 单线程+多路IO服用(Redis)

Redis的五大数据类型

  1. String
  2. set
  3. list
  4. hash
  5. zset

注意

  1. 这五大数据类型指的是key-value中的value
  2. Redis虽然支持一键多值,但是这些值只能是String类型list,set,hash,zset只能存储字符串