一,Redis是什么
Redis是一个基于内存的非关系型的key-value结构数据库。Redis 是互联网技术领域使用最为广泛的存储中间件。
也就是redis里面存储的数据是放在内存中的
关系型数据库
- Mysql
- Oracle
- DB2
- SQLServer
非关系数据库
- Redis
- Mongo db
- MemCached
二,Redis使用场景
- 缓存
- 排行榜
- 分布式锁
- 消息系统
- 分布式会话
- 社交网络
三,Redis的数据类型
Redis存储的是key-value结构的数据,其中key是字符串类型,value有5种常用的数据类型
- 字符串类型(String)
- SET key value 设置指定key的值
- GET key 获取指定key的值
- SETEX key seconds value 设置指定key的值,并将 key 的过期时间设为 seconds 秒
- SETNX key value 只有在key不存在时设置 key 的值
- 哈希(hash)
hash 是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象,常用命令:
- HSET key filed value 设置指定字段下指定属性的值
- HGET key field 获取存储在哈希表中指定字段的值
- HDEL key field 删除存储在哈希表中的指定字段
- HKEYS key 获取哈希表中所有字段
- HVALS key 获取哈希表中所有值
- 列表(list)
- LPUSH key value value2 value3 将一个或多个值插入到列表头部
- LRANGE key start stop 获取列表指定范围内的元素,0 -1 获取所有元素
- LPOP key 移除并获取列表最后一个元素
- LLEN key 获取列表长度
- 集合(set)
- SADD key member1 member2 向集合添加一个或多个成员
- SMEMBERS key 返回集合中的所有成员
- SCARD key 获取集合的成员数
- SINTER key1 [key2] 返回给定所有集合的交
- SUNION key1 [key2] 返回所有给定集合的并集
- SREM key member1 [member2] 移除集合中一个或多个成员
- 有序集合(zset)
- ZADD key score1 member1 [score2 member2] 向有序集合添加一个或多个成员
- ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合中指定区间内的成员
- ZINCRBY key increment member 有序集合中对指定成员的分数加上增量 increment
- ZREM key member [member ...] 移除有序集合中的一个或多个成员
四,Redis持久化
1.RDB持久化
RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。快照文件称为RDB文件,默认是保存在当前运行目录。
RDB持久化执行时机
- 执行save命令
- 执行bgsave命令
- Redis停机时
- 触发RDB条件
RDB会在什么时候执行?save 60 10000代表什么含义?
- 默认是服务停止时
- 代表60秒内至少执行1000次修改则触发RDB
RDB的缺点?
- RDB执行间隔时间长,两次RDB之间写入数据有丢失的风险
- fork子进程、压缩、写出RDB文件都比较耗时
2.AOF持久化
AOF全称为Append Only File(追加文件)。Redis处理的每一个写命令都会记录在AOF文件,可以看做是命令日志文件。
AOF和RDB区别