[1] Redis简介

什么是NoSQL

redis中文网

  • NoSQL 是 Not Only SQL 的缩写,意即"不仅仅是SQL"的意思,泛指非关系型的数据库。强调Key-Value Stores和文档数据库的优点。
  • NoSQL产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能

Redis简介

Redis:Remote Dictionary Server(远程字典服务器)
Redis是当前比较热门的NOSQL系统之一,它是一个开源的使用ANSI c语言编写的key-value存储系统(区别于MySQL的二维表格的形式存储。)。和Memcache类似,但很大程度补偿了Memcache的不足。和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化

Redis的特点

  1. Redis读取的速度是110000次/s,写的速度是81000次/s
  2. 原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
  3. 支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
  4. 持久化,主从复制(集群)
  5. 支持过期时间,支持事务,消息订阅。
  6. 官方不支持window,但是又第三方版本。

1,单进程单线程

采用多路 I/O 复用技术可以让单个线程高效的处理多个连接请求(尽量减少网络IO的时间消耗)
why?
多线程处理可能涉及到锁
多线程处理会涉及到线程切换而消耗CPU
单进程不存在线程安全问题
缺点:
无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善

2,默认16个兄弟一起站台

默认16个数据库,类似数组下表从零开始,初始默认使用零号库

Redis的应用场景

1、数据缓存(提高访问性能)

将一些数据在短时间之内不会发生变化,而且它们还要被频繁访问,为了提高用户的请求速度和降低网站的负载,降低数据库的读写次数,就把这些数据放到缓存中。

2、会话缓存

(session cache,保存web会话信息)

3、排行榜/计数器

(NGINX+lua+redis计数器进行IP自动封禁)

4、消息队列

(构建实时消息系统,聊天,群聊),但一般是用的消息中间件,如ActiveMQ

展开阅读全文