- redis 数据过期数据删除策略:
- redis 数据过期具体删除位置:
数据删除位置:在文件 dict.c 文件 static int dictGenericDelete(dict *d, const void *key, int nofree) 函数中;
static int dictGenericDelete(dict *d, const void *key, int nofree)
{
unsigned int h, idx;
dictEntry *he, *prevHe;
int table;
if (d->ht[0].size == 0) return DICT_ERR; /* d->ht[0].table is NULL */
if (dictIsRehashing(d)) _dictRehashStep(d);
h = dictHashKey(d, key);
for (table = 0; table <= 1; table++) {
idx = h & d->ht[table].sizemask;
he = d->ht[table].table[idx];
prevHe = NULL;
while(he) {
if (dictCompareKeys(d, key, he->key)) {
/* Unlink the element from the list */
if (prevHe)
prevHe->next = he->next;
else
d->ht[table].table[idx] = he->next;
if (!nofree) {
dictFreeKey(d, he);
dictFreeVal(d, he);
// 数据处理函数
//dataProce((void *)key);
}
zfree(he);
d->ht[table].used--;
return DICT_OK;
}
prevHe = he;
he = he->next;
}
if (!dictIsRehashing(d)) break;
}
return DICT_ERR; /* not found */
}
- 数据处理服务:
dataProce((void)*key) 发起PRC 计算的client; 服务端可以依据具体的业务来设计。
较简单的方法是使用nginx 搭建http服务来实现。 实用 php 处理数据。
dataProce((void)*key) 发起PRC 计算的client; 服务端可以依据具体的业务来设计。
较简单的方法是使用nginx 搭建http服务来实现。 实用 php 处理数据。