NoSQL数据库
特点:
- 不遵循sql标准
- 不支持ACID
- 远超于sql的性能
NoSQL适用场景:
- 对数据高并发读写
- 海量数据读写
- 对数据高扩展性
不适用场景:
- 需要事务支持
- 基于sql的结构化查询存储,处理复杂的关系,需要即席查询
- (用不着sql和用了sql也不行的情况,考虑用nosql)
Redis背景知识介绍:
端口6379是如何来的;来自于Alessia Merz,redis的作者称merz为愚蠢的意思,6379对应老式手机的按键merz | redis默认16个数据库,从0开始,默认为0号库; 使用select 库号来进行切换; dbsize查看当前数据库的数量 |
---|
Redis是单线程+多路IO复用技术
多路复用是指一个线程来检查多个文件描述符的就绪状态,比如调用select和poll函数传入多个文件描述符,如果有一个文件描述符就绪,则返回,否则阻塞直到超时。得到就绪状态后进行真正的操作可以在同一个线程执行,也可以启动线程执行
举个例子:
1,2,3三个人去买票,他们买票都交给黄牛来买,黄牛一个人去火车站买,则只有一个线程去火车站买票;1交给黄牛买票后,则等待黄牛给它买票
串行VS多线程+锁(memcached)VS单线程+多路IO复用(Redis)
与Memcache三点不同:支持多数据类型,支持持久化,单线程+多路IO复用