1、redis有哪些数据结构
String、List、Set、Sorted Set、hashes
2、redis有哪些淘汰策略
noeviction:返回错误当内存限制达到,并且客户端尝试执行会让更多内存被使用的命令。
allkeys-lru: 尝试回收最少使用的键(LRU),使得新添加的数据有空间存放。
volatile-lru: 尝试回收最少使用的键(LRU),但仅限于在过期集合的键,使得新添加的数据有空间存放。
allkeys-random: 回收随机的键使得新添加的数据有空间存放。
volatile-random: 回收随机的键使得新添加的数据有空间存放,但仅限于在过期集合的键。
volatile-ttl: 回收在过期集合的键,并且优先回收存活时间(TTL)较短的键,使得新添加的数据有空间存放。
3、redis持久化
Redis提供了持久化机制给我们用,分别是RDB和AOF
数据快照 (RDB)
这种行为就类似MySQL的Dump ,redis的RDB,这就是某时某个点的全部数据备份日志文件(AOF)
每次的操作就写入日志,当我们需要恢复数据时,就可以根据日志的记录完整的走一遍流程,恢复数据,比如MySQL的BinLog,Hbase的HLog,Redis的AOF- 4.0优化了持久化机制支持混合模式持久化
- 所以Redis给我们提供了三种AOF策略,以供用户按需选择
always
实时刷新,将缓冲区的每一条命令都立即刷新到硬盘的AOF文件。既每执行一条命令,待其刚刷入缓冲区,就立即强制刷入磁盘AOF文件中everysec
每一秒执行一次,既每一秒都强制将缓冲区的内容刷新到硬盘AOF文件中。no
不强制刷入,no就是不需要我们来考虑什么时候刷入磁盘,而是由操作系统来决定,他想什么时候刷新就什么时候刷新