Set*_*ker 16 sql caching in-memory-database redis in-memory-tables
我有一个不断访问的SQL表,但很少变化.
表由UserID分区,每个用户在表中有许多记录.
我想保存数据库资源并将此表移近某种内存缓存中的应用程序.
在进程中,缓存过于占用内存,因此需要在应用程序外部进行缓存.
像Redis这样的Key Value商店由于与Redis之间序列化和反序列化表的开销而被证明是低效的.
我正在寻找可以将这个表(或数据分区)存储在内存中的东西,但是让我只查询我需要的信息,而不需要为每次读取序列化和反序列化大块数据.
是否有任何东西可以在内存数据库表中提供Out of Process,它支持高速缓存的查询?
搜索显示Apache Ignite可能是一个可能的选择,但我正在寻找更明智的建议.
由于它不在进程中,因此必须进行序列化和反序列化.您关注的问题是如何减少序列化/去分类工作.如果您使用Redis的STRING类型,则无法减少这些工作.
但是,您可以使用HASH解决问题:将SQL表映射到HASH.
假设你有如下表:person: id(varchar), name(varchar), age(int),你可以把人id作为重点,并采取name和age作为字段.当您想要搜索某人的名字时,您只需要获取名称字段(HGET person-id name),其他字段将不会被反序列化.
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |