public abstract class BaseHashMapRedisService extends Object
| 构造器和说明 |
|---|
BaseHashMapRedisService() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
bind(HashMapRedisNotify notify)
绑定通知
|
protected void |
cleanAgileEntities()
清空数据
|
void |
foreachFinder(IBaseFinder finder) |
Map<String,Object> |
getEntity(Long id) |
protected Map<String,Object> |
getEntity(String entityKey)
获取实体
|
int |
getEntityCount(IBaseFinder finder) |
List<Map<String,Object>> |
getEntityList()
获取全局实体列表
|
List<Map<String,Object>> |
getEntityList(IBaseFinder finder) |
protected Map<String,Map<String,Object>> |
getEntitys()
获得一个副本
|
abstract String |
getEntityType()
从派生类中,获得处理的实体类型
|
protected String |
getHead() |
abstract RedisService |
getRedisService()
从派生类中,获得redisService
|
long |
getUpdateTime()
获取时间戳
|
boolean |
isEmpty()
检查:是否为空
|
boolean |
isInited()
是否已经完成初始化
|
protected boolean |
isNeedLoad() |
protected boolean |
isNeedSave() |
protected void |
loadAgileEntities()
消费者:从redis敏捷装载数据
|
protected void |
loadAllEntities()
生产者/消费者:从redis全量装载数据
|
protected void |
saveAgileEntities()
生产者:向redis敏捷保存数据
步骤1.先读取redis的敏捷数据
步骤2.检查先后敏捷数据是否结构不一致,不一致就全量更新,一致就进行后面的敏捷更新 步骤3.检查先后敏捷数据是否变化太大,变化太大就全量更新(敏捷更新没有意义),变化幅度小才进行后面的敏捷更新 步骤4.敏捷更新时,对发生变化的数据进行记录级更新,逐条写入redis |
protected void |
saveAllEntities()
生产者:向redis全量保存数据
|
void |
setInited()
标识已经完成初始化
|
public abstract RedisService getRedisService()
public abstract String getEntityType()
public boolean isInited()
public void setInited()
public long getUpdateTime()
protected void bind(HashMapRedisNotify notify)
notify - protected String getHead()
protected void loadAllEntities()
throws com.fasterxml.jackson.core.JsonParseException
com.fasterxml.jackson.core.JsonParseExceptionprotected void loadAgileEntities()
throws IOException
IOExceptionprotected void saveAllEntities()
protected void saveAgileEntities()
protected void cleanAgileEntities()
protected boolean isNeedLoad()
protected boolean isNeedSave()
public void foreachFinder(IBaseFinder finder)
public List<Map<String,Object>> getEntityList(IBaseFinder finder)
public int getEntityCount(IBaseFinder finder)
public boolean isEmpty()
Copyright © 2024. All rights reserved.