Redis常見資料操作
阿新 • • 發佈:2018-12-28
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叢集配置》。