1、内存数据库。
2、五种数据结构:字符串,set,list,hash,zset。
keys 查看所有的key。
type key 查看对应key的类型。
对不同数据类型使用不同的操作命令。
字符串,就是直接一个value,对字符串的操作可以追节,计算长度,可以获取子字符串。
哈希,一个键值,可用于存储键值对的一个对象。hget,hset,hgetall。成员数最多2的32次方-1,即40多亿个。
集合,set,不可存储重复的元素,string类型的无序集合。底层是通过哈希实现的,所以复杂度都是O(1)
列表,list,一个双向列表,按照插入顺序排序。可以从头部插入移除,也可以从尾部插入移除
有序集合,zset,每个成员都是唯一的,但是每个成员会对应一个分数,分数可以不唯一,而且会从小到大按照分数进行排序。
3、redis事务处理
半事务处理,支持事务处理。
redis事务对原子性的半支持,即使事务中有一个命令执行失败,也会继续执行事务余下的命令。
每个事务都是隔离的,一个事务中的命令会被序列化,不会插入其他命令执行。
MULTI,标记一个事务的开始。
EXEC,执行事务中的命令。
DISCARD,放弃事务,该事务内命令全部取消。
WATCH,监控一个或多个KEY,如果这些key在提交事务执行之前被修改过,事务会执行失败,需要重新获取新数据操作。类似于乐观锁。
UNWATCH,
redis事务中命令包括两个步骤:
1、开始事务MULTI:
MULTI
2、命令入队列:
set key1 value1
set key2 value2
a、如果命令入队列的时候就报错,那么会导致整个事务无法执行,出错。
b、如果命令入队列的时候没有报错,在执行的时候出错,那么事务就继续执行。
3、执行事务:
EXEC
4、redis的主从同步。
redis支持主从复制,支持一主多从或级联结构。
支持全量同步和增量同步两种。
全量同步一般发生在slave初始化阶段,这是slave会将master上的数据都复制一份。
增量同步就是主的写操作会向从服务器发送一个相同的写命令,从服务器接收并执行。
5、redis的持久化策略。
两种策略:
RDB,定时dump,类似打快照,将数据dump成一个数据文件,并利用二进制进行压缩存储。
AOF(append-only file),以日志的形式记录服务器的每一个写操作。