模块
Redis 4.0.0最大的功能之一是期待已久的模块系统。模块系统提供了一个API,用于扩展Redis,主要在C中动态加载模块。模块API提供了多个级别的API,供开发人员为Redis添加新的特性和功能。
使用Redis模块,开发人员可以在现有数据类型中添加新的操作,引入新的数据类型,如JSON,或使用搜索或神经网络等新流程扩展Redis。
新的API使开发人员能够构建在使用Lua构建时不切实际或性能不足的扩展。正如Redis.io上的模块文档中所提到的,“Redis模块使使用外部模块扩展Redis功能成为可能,以与核心内部类似的速度和功能实现新的Redis命令。”
缓存优化
4.0.0版本增加了最不频繁使用(LFU)的最大内存策略,为用户提供了另一种在Redis达到最大内存阈值时驱逐KEY的算法。LFU缓存为许多应用程序提供了比最近最少使用(LRU)缓存更好的命中率。
Redis中LFU缓存的实现是通过近似算法完成的,以提供对KEY访问频率的准确估计,而不添加大量的内存开销来跟踪访问计数。与当前的LRU缓存策略一样,LFU缓存只能应用于易失性KEY(过期KEY)或所有KEY
内存相关命令
新增MEMORY命令向用户提供Redis实例的内存消耗信息。MEMORY USAGE命令为用户提供给定KEY使用的精确内存量,而MEMORY DOCTOR提供了一个框架(类似于LATENCY DOCTOR命令),用于观察实例的总体内存消耗。
异步删除命令
新增UNLINK命令,功能与DEL命令一样,但是异步而非阻塞命令。 同时 ‘FLUSHDB’ and ‘FLUSHALL’ 命令也增加了‘ASYNC’的参数,可以达到异步非阻塞的效果。
交换数据库命令
新增SWAPDB命令,可以让不同数据库的编号交换,比如执行SWAP 0 1 , 即让原来的数据库0变成1, 1变成0