zoukankan      html  css  js  c++  java
  • 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集群配置》

  • 相关阅读:
    AJAX 应用 透过 JavaScript 调用 C# 函数
    快速搞懂 SQL Server 的锁定和阻塞
    国际财务报告准则 IFRS 与信息系统
    我的android阅读软件“微读”做最简单的手机阅读软件
    我的android阅读软件“微读”v2.0发布,加入新浪微博的支持
    iphone开发我的新浪微博客户端用户登录等待篇(1.4)
    iphone开发我的新浪微博客户端用户登录自定义弹出窗口篇(1.2)
    自定义实现类似android主界面的滑屏换屏控件
    我的android阅读软件“微读”v2.2又发布,加入微美图、微漫画、微美女阅读
    iphone开发我的新浪微博客户端用户登录OAuth授权认证篇(1.3)
  • 原文地址:https://www.cnblogs.com/lizhangyong/p/8625496.html
Copyright © 2011-2022 走看看