11月 182012
 

关于keys命令

为什么使用keys命令遍历所有key不可取?

1. 相对于其他操作来讲,遍历所有key是一个耗时的操作

2. redis是一个单线程的程序,一个操作的阻塞,就会影响其他操作的执行

3. keys操作并不是匹配一个就输出一个的,而是都匹配出来之后才输出的;虽然没有copy每个匹配到的key,也就是说没有占用额外的服务器的内存,但是:

如果client端允许一边接收一边处理的话,则势必阻塞server端的操作;如果client端接收完再操作,则可能会消耗很多client端的内存。如果可以的话,大数据量似乎只能先暂存到磁盘了。

从根本上来讲,这似乎是redis的单线程机制造成的。

 Posted by at 下午 10:59

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据