redis基础知识储备

Redis概述

  • redis是一个开源的key-value存储系统

  • 和Memcached类似,它支持存储的value类型相对较多redis支持的数据类型:字符串(String)、列表(list)、集合(set)、哈希结构(hash)、有序集合(zset),在redis6新版本中,添加了对Bitmaps、Geospatial、HyperLogLog类型的支持

  • 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的

  • 在此基础上,Redis支持各种不同方式的排序

  • 与memcached一样,为了保证效率,数据都是缓存在内存中的

  • 区别是Redis或周期性的把更新的数据写入到磁盘中,或者把修改操作记录追加到记录文件中

  • redis还有master-slave(主从)同步
    基本知识点

    redis默认端口号6379的由来:有个 Alessia Merz的意大利舞女、女演员,Merz字符在九宫格的键盘上,分别对应的数字就是6379.
    redis默认提供了16个库,下标由0~15进行编号,默认使用0号库,可以通过select index 切换库

NoSql
NoSql(Not Only SQL)意思是不仅仅是sql,泛指非关系型数据库。
NoSql不依赖业务逻辑方式存储,而是以简单的key - value 模式存储,因此大大增加了数据库的扩展能力,有一下特点

  1. 不遵循SQL标准
  2. 不支持ACID
  3. 远超过SQL的性能

使用场景

  1. 对数据的高并发的读写
  2. 海量数据的读写
  3. 对数据的高可扩展性

不适用场景

  1. 需要事务支持
  2. 基于Sql的结构化查询存储,复杂的关系

redis单线程+多路IO复用:
多路复用指使用一个线程来检查多个文件描述符(Socket)的就绪状态,比如调用select和poll函数,传入多个文件描述符,如果有一个文件描述符就位,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程里执行,也可以启用线程执行(比如使用线程池)就是说多路IO复用起到一个监视的效果,就绪后,Redis直接执行,不需要等待
例如火车站买票场景:
在这里插入图片描述
黄牛买票,是单线程,而多路复用体现在a、b、c三个人,他们只需要将需求告诉黄牛,在等待的同时,可以自己做其他事情。多路IO复用有select,poll,epoll这些模式。select监测数量能力有限,只能监测1024个。poll监测数量没有限制,但是需要一个一个核查。配epoll监测数量没有限制,也不需要一个一个核查,直接看是否有一个正确的标识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值