简要介绍
Redis
是一个非关系型数据库(NoSql),可以存储键(Key)与5种不同类型的值(value)之间的映射。- 通过复制,持久化(AOF和RDB)和客户端分片等特性来满足生产环境所需。
Redis
是单核的。
Redis与其他数据库对比
Redis与Memcached
Redis
支持俩种方式,AOF和RDB来持久化磁盘中,而Memcached
不支持。Redis
支持五种数据结构,(String,List,Set,Hash,Zset);Memcached
支持String
。
Redis的应用的简单例子
登录与Cookie
-
一次请求过程:
- 客户端向服务器端发起请求,服务器进行解析。
- 将请求,转发到某个处理器上。
- 可能涉及到数据库的相关操作。
- 处理器将处理之后的数据,对模板进行渲染。
- 处理器将渲染后的模板,作为对客户端请求的响应。
这种情况下,请求是无状态的。服务器没有存储请求相关信息。
-
常见的登录功能中,
cookie
常用来存储用户相关信息。 -
cookie
有俩种常见的方法来进行存储。一种是签名(singed)cookie,一种是令牌(token)cookie。- 签名:通常存储用户名,ID,最后一次登录时间等其他网站需要的信息。
- 优点:验证cookie的信息都包含在里面,也可以包含额外的信息。验证比较容易。
- 缺点:正确的处理签名很难,很容易忘记对签名进行处理,或者忘记签名处理,容易造成安全漏洞。
- 令牌:存储一串随机字符作为令牌,数据库根据令牌来查找拥有者。
- 优点:添加信息容易,体积小,客户端发送请求快。
- 缺点:需要在服务器中存储更多的信息,如果是关系型数据库,代价比较大。
- 签名:通常存储用户名,ID,最后一次登录时间等其他网站需要的信息。
-
使用
Redis
的散列结构来存储相关信息,访问速度快,减轻关系型数据库压力。