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集群配置》

posted @ 2018-03-22 18:16  奔跑在梦想的道路上  阅读(169)  评论(0编辑  收藏  举报