走自己的路

          路漫漫其修遠兮,吾將上下而求索

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            50 隨筆 :: 4 文章 :: 118 評論 :: 0 Trackbacks
          List: 它的數據結構和java中的linkedlist是一樣的,是一個雙向循環鏈表。在里面預先插入了3840000條記錄。服務器配置,pc機,為Redis分配了1g內存 2g vm。
          1.插入:62ms,lpush rpush一樣。
          2.刪除:lpop,rpop 63ms。
                         刪除第一個元素 lrem(key, value, 1) 63ms 刪除最后一個元素 780ms。但刪除最后一個元素可以使用lrem(key, value, -1)這樣也是63ms。使用lrem(key, value, 0)刪除所有等于value值的元素780ms,每次都要遍歷一遍。不推薦使用。

          2.查詢:lindex第一個元素,70ms,lindex最后一個元素300ms。反之用-1亦然。
                         lrange中間的10000個元素 250ms
          3.大小:size一把,63ms。應該有專門存儲了list大小。
          4.賦值:lset 第一個元素63ms。 lset最后一個元素280ms

          我使用時用的是lpush,通常經常用到的會是第一頁,會查詢,刪除的快一些。使用時,建議對List使用限長。可以通過trim實現。

          另外在使用list時,可以加個時間撮,比如201012。這樣12月份的數據就會存在這個List中。而10月份之前的可以存DB或者清除。

          另外Redis提供了set和sortset,但是沒有LinkedHashSet。我們可以用Redis自己實現一個。

          public boolean add(String name, String id, Object e) {
             
          boolean notExist = redisTemplate.setnx(name+id, 2);
             
          if(notExist){
               redisTemplate.lpush(name, id);
             }

             
          return notExist;
          }



          public boolean remove(String name, String id) {
             
          if(redisTemplate.delKey(name+id)) {
              
          return redisTemplate.lrem(name, e, 1>0 ;
             }

             
          return false;
          }






          posted on 2010-12-30 18:06 叱咤紅人 閱讀(4916) 評論(1)  編輯  收藏

          評論

          # re: Redis List 2010-12-31 10:29 ugg boots on sale
          呵呵,很好的學習資料哦,可惜我看不懂,嘻、因為我看到這些代碼類的就頭疼  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 新干县| 兰州市| 邮箱| 琼结县| 永仁县| 广南县| 建阳市| 深州市| 扎赉特旗| 崇阳县| 兴化市| 桃园市| 南召县| 常熟市| 噶尔县| 弋阳县| 阿鲁科尔沁旗| 普陀区| 和硕县| 古田县| 伊吾县| 五大连池市| 布拖县| 鄂托克前旗| 新田县| 那曲县| 五家渠市| 常州市| 阿巴嘎旗| 滨海县| 大洼县| 临江市| 论坛| 龙江县| 高邮市| 东丰县| 巴林左旗| 泸水县| 措美县| 青岛市| 比如县|