1. 程式人生 > >Redis常見資料操作

Redis常見資料操作

  redis中有5種常見的資料型別,針對這5種資料型別有著相應的資料操作。  

1.String(鍵值對為String - String)
        set k1 v1
        get k1
        getset k1 v1 - hehe
        mset k2 v2 - 123 k3 v3 -456
        mget k1 k2 k3
        incr num    //自增1
        incrby num 2
        decr num
        decrby num 2
        append k1 "haha"
        strlen k1
2.Hash(操作物件資料)
        hset user username "zhangsan"
        hmset user usersex male userage 18
        hget user username
        hmget user usersex userage
        hincrby user userage 2
        hdel user userage
        hexists user userage
        hkeys user
        hvals user
        hlen user
3.list(linkedlist, 有序列表)
        lpush list:1 1 2 3
        rpush list:1 4 5 6
        lrange list:1 0 2
        lrange list:1 0 - 1
        lpop list:1
        rpop list:1
        lrem list:1 1 1
        lrem list:1 0 2
        lrem list:1 - 1 3
        lindex list:1 1
        lset list:1 1 9
        linsert list:1 before 4 001
        linsert list:1 after 6 007
        rpoplpush list:1 newlist
4.set(無序, 不可重複)
        sadd set:1 a b c
        srem set:1 a
        smembers set:1
        sismember set:1 a
        sadd setA 1 2 3
        sadd setB 2 3 4
        sdiff setA setB
        sdiff setB setA
        sinter setA setB
        sunion setA setB
        scard setA
        spop setA
5.zset(sortedset, 有序集合,可排序,但是元素唯一)
         [注:Sortedset和set的不同之處,是會給set中的元素新增一個分數,然後通過這個分數進行排序。]
        zadd scoreboard 60 zhangsan 70 lisi 80 wagnwu
        zadd scoreboard 90 zhaoliu
        zscore scoreboard lisi
        zrem scoreboard lisi
        zrange scoreboard 0 3
        zrevrange scoreboard 0 3
        zrange scoreboard 0 3 withscores
        zrank scoreboard zhaoliu
        zrevrank scoreboard zhaoliu
        zrangebyscore scoreboard 70 90 withscores
        zincrby scoreboard 5 lisi
        zrange scoreboard 0 - 1
        zcard scoreboard
        zcount scoreboard 80 90
        zremrangebyrank scoreboard 0 1
        zramrangebyscore scoreboard 70 90
其他常用命令:
        keys *
         exists k1
        del k1
        rename k1 k2
        type k1
        expire k1 1
        ttl k1

  另外,在資料持久化儲存方面,Redis預設通過快照的方式將資料持久化到磁碟中。可以在redis.conf中修改持久化快照 的條件(如 save 900 1);還可以在redis.conf中指定持久化檔案儲存的目錄(如 dbfilename dump.redb)。一旦redis非法關閉,那麼會丟失最後一次持久化之後的資料。如果資料不重要,則不必要關 心;如果資料不能允許丟失,那麼要使用aof方式。

  Redis預設是不使用Aof方式持久化的。Aof方式的持久化,是操作一次redis資料庫,則將操作的記 錄儲存到aof持久化檔案中。使用aof方式持久化資料的步驟是:開啟aof方式的持久化方案,將redis.conf中的appendonly改為yes,即開啟aof方式的持久化方案; Aof檔案儲存的目錄和rdb方式的相似,Aof檔案儲存的名稱是 appendfilename "appendonly.aof"。
  在同時使用aof和rdb方式時,如果redis伺服器重啟,則資料從aof檔案載入。
  持久化保證了即使redis服務重啟也不會丟失資料,因為redis服務重啟後會將硬碟上持久化的資料 恢復到記憶體中,但是當redis伺服器的硬碟損壞了可能會導致資料丟失,如果通過redis的主從複製機制就可 以避免這種單點故障。關於這方面的資料,請參考

《Redis叢集配置》