初识redis
官方文档地址
官方文档.
redis理解
1.redis 是非关系型数据库(noSql) 具有非结构化、无关联性、不是sql的语法等特性。
2.redis 是远程词典服务器是一个基于内存的键值型NoSQL数据库。
redis特点
1.redis 是键值型(key -value)型,value支持多种不同的数据结构,功能丰富。
2. 单线程,每一个命令具有原子性
3. 低延迟。速度快(基于内存、IO多路复用、良好的编码)。
4. 支持数据持久化(由内存写入磁盘)
5. 支持主从集群(是指从节点备份主节点数据,提高安全性)、分片集群(是指数据拆分)。
6.支持多语言客户端。
速度快 最重要的原因是基于内存,MySQL是基于磁盘的。
redis命令行
redis 是键值型(key -value)型,value支持多种不同的数据结构.不同的数据结构,有不同的命令行对数据,进行增删改查。我们可以根据官方文档.查询相关命令行,进行数据操作。
常用的value 数据类型
- String 类型(字符串)
- Hash 类型(哈希表)(value 值也是key-value的形式)hase结构可以对value中某一个值进行更改。他是将对象中每个字段都是独立存储的。
- List 类型(是一个双向链表结构)他是有序的,元素可以重复。通常用来保存对数据有顺序要求的(点赞,评论)
- set类型 (可以看作一个haseMap)他是无序、元素不可重复。通常用来实现关注、共同好友等功能。
- SortedSet (可排序的哈希表)他是根据Score属性对元素进行排名。
redis有效期单位
redis 有效期是以秒为单位
redis key的结构
redis key的结构 是允许有多个单词形式的层级结构,多个单词之前用:隔开,格式如下:项目名称:业务名称:id。
redis 用途
redis主要用于数据缓存。
缓存数据分类可以分为实时同步数据和阶段性同步数据。阶段性同步数据可以在服务器启动的时候先把数据写入到redis里面。用户访问数据,数据返回会更加快速。
redis 线程
redis 3.0以前是redis单线程的。
单线程
redis单线程 是采用多路复用技术。
对于多路复用器的多路选择宣发常见的有三种:select模型(底层是数组)、poll模型(、epoll模型。
优点:维护性高、维护简单。
不存在并发读写情况、也就不存在执行顺序不确定性、不存在线程切换的开销、不存在为了数据安全进行加锁/解锁的开销。
缺点:性能会受到影响,由于单线程只能开一个处理器,所以会形成处理器浪费。
多线程 (多线程I/O模型+单线程)
多线程 I0 模型中的“多线程”仅用于接受、解析客户端的请求,然后将解析出的请求写入到任务队列。而对具体任务(命令)的处理,仍是由主线程处理。这样做使得用户无需考虑线程安全问题I无需考虑事务控制,无需考虑像 LPUSH/LPOP 等命令的执行顺序问题。