redis也许缓存系统有批量删除的机制吗

redis或者缓存系统有批量删除的机制吗?
一个场景,我根据某些条件更新或者删除了数据库一个表中的一些数据,怎么样将缓存中的对应数据删除或者更新?保持一致性?
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

这个关redis什么事?你要保持数据一致性,删除数据后再删除缓存里面的数据就ok了,现在redis在可以登录客户端的情况下可以批量删除
redis-cli KEYS "test_*" 
------解决思路----------------------
 xargs redis-cli DEL

用代码的话一般都是先取出key,循环遍历在删除就ok了


对缓存了解比较少,缓存有提供除了根据key之外删除数据的方法吗?或者有什么办法在更新数据库的操作过程中获取被更新的数据的key?

我觉得你走入了一个误区了
缓存中的key一般都是根据你的业务规则生成的,就拿****的博客来说,如果我要做缓存,是不是可以用博客的id作为缓存的key,如果博客更新了,这时我们就要更新缓存的数据(保持一致性),博客更新了,服务器是不是可以知道id,你是不是可以用这个id在缓存中找到旧的数据,删除就ok了


可能还是太笨,我的意思是比如更新数据库的语句是update table_name set for = ‘bar’ where column_name = 'XXX';
我缓存的key肯能的组成是这样:table_name:id,但是我更新数据不是根据ID,是根据其他条件,这个时候怎样获取缓存中受影响的数据呢?

我去,你不会根据colunm_name='XXX' 把这些id查询出来吗?select id from table_name where colum_name='XXX';这不是解决了嘛,虽然多查询了一次数据库,但根据你描述的情况来看(你想要缓存立即同步),必须这样做