Redis
特点
内存数据库—快
k-v格式,不支持sql
也可以对数据进行持久化
可以搭建分布式
默认分16个库,没有表的概念
缓存,消息队列
value数据类型
String, 位图
列表-- 链表
hash k-v
set
sortSet
常用命令
set get
lpush rpush lpop rpop
hset hmset hget hgetAll
sadd
keys *
save bgsave
flushdb
java api
1、创建redis连接,new Jedis new JedisPool
方法和命令基本上一一对应
TTL
每一个key都可以指定一个过期时间
定时过期
指定一个时间戳过期
持久化
RDB
-
通过一些条件将内存中的数据快照到磁盘上
- save 900 1
- save 300 10
- save 60 10000
-
优点
- 快照体积较小,恢复速度较快
- 可以按照时间做多版本
-
缺点
- 会丢失最近一段时间写入没有持久化的数据
- 在触发持久化的时候会有毫秒时间的服务暂停
AOF
-
将客户端每一条插入删除的命令保存到文件中,默认每一秒保存一次
-
优点
- 最多只会丢失最近一秒中的数据
- 如果误操作,可以删除文件末尾的命令重启redis
-
缺点
- aof文件比较大,重启 redis时间比较长
集群
主从复制
- 为每一个主节点配置一个从节点,分担主节点的读压力
分布式集群
- 由多台redis节点组成一个分布式的集群,每一个节点负责处理一部分槽位
- 当所有槽位都有节点处理之后集群会处理上线状态
- 每一个主节点也会配置一个从节点,能够实现自动的故障转移