🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## Redis快的原因 1. 纯内存访问 2. 非阻塞I/O,适用epoll作为I/O多路复用的实现 3. 单线程避免了线程切换 ## Redis常用的数据类型和使用场景 ### **String** ![](https://box.kancloud.cn/fb06552a148cef2c0b4c4cf1f84a13a3_696x383.png) **特点** * 最常用 * value支持字符串,数字,二进制 * 最大值不能大于512MB **适用场景** * web架构中充当缓存层 - 提高访问性能保护存储层 * 计数 - 统计数据并异步保存到存储层 * 共享session - 对集群架构的服务器提供共享session支持 * 限速 - 通过指定缓存的有效期,限制例如获取验证码的请求频率 ### **Hash** ![](https://box.kancloud.cn/56661ce136fe84a101e32d6d615dcc37_685x471.png) **特点** * 相比关系型数据库,Hash类型的每个key可以有不一样的field,但是不支持复杂查询 **适用场景** * 保存用户信息 ### **列表** ![](https://box.kancloud.cn/c40c8d16a60be48269207b41e9a7eff7_694x643.png) **特点** * 元素 有序(支持指定下标),可重复,支持字符串,hash,数量上限是2^32-1 * 支持头尾两端的插入(push)弹出(pop),或者指定下标获取元素 **适用场景** * 消息队列 - 生产者 & 队列 & 多个消费者 * 文章列表 - 使用hash保存用户文章的title,content,然后作为元素push到队列 ### **集合** ![](https://box.kancloud.cn/accf60c081eb06c88d6fc0089147376a_701x309.png) **特点** * 无序,不可重复 * 元素数量上限2^32-1 **适用场景** * 设置用户标签 ### **有序集合** ![](https://box.kancloud.cn/0279c12f1e9c1db11dc39f5167541eff_698x364.png) **特点** * 元素不可重复,但score可重复;有序(通过score列实现) **适用场景** * 排行榜系统 - eg:zadd user:ranking:2016_03_15 mike 3 ## 事务 ## 持久化数据