zoukankan      html  css  js  c++  java
  • Redis【2】五大基本数据类型~

    • Redis_启动后杂项基础
      • Redis一共16个数据库 SELECT[0~15] 来切换数据库
      • 命令起效返回1 不起效返回0 或者nil 或者error 异常...
      • DBSIZE 查询数据的数
      • KEYS * 显示所有的key值.支持Ant风格
        • 匹配规则
          • ? 匹配一个字符
          • * 匹配0个或多个字符
          • [] 表示匹配括号间任意一个字符,用 - 表示范围,例如: a[a-c] 可以匹配 aa ab ac 不能匹配ad
          • ? 匹配?
        • KEYS k? 只查询k1 k2 而不查询k11
        • KEYS k?? 只查询k11 k12 而不查询k1
      • FLUSHDB 清空当前库. FLUSHALL清空所有库共16个
      • Redis索引从0开始
      • 默认端口6379
    • Redis_常用五大数据类型
        Redis常见数据类型操作命令 redisdoc.com
      • key
        • keys *
        • set k1 v1 设置key为k1 value为v1 如果存在k1就修改,覆盖了
        • exists key的名字,判断某个key是否存在
        • move key db ---> 当前库就没有了,被移除了
        • expire key 秒钟:为给定的key设置过期时间
        • ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期,过期就移除了
        • type key 查看你的key是什么类型
        • del key 删除
      • String 字符串 是Redis最基本的类型,一共key对应一个value,是二进制安全的,可以包含jpg图片或者序列号的对象.value最多可以是512M
        • set/get/del/append/strlen
          • set k1 v1
          • get k1
          • del k1
          • append k1 12345
          • strlen k1
        • incr/decr/incrby/decrby,一定要是数字才能进行加减
          • incr k1 每次都+1
          • decr k1 每次都-1
          • incrby k1 2 每次都+2
          • decrby k1 3 每次都-3
        • getrange/setrange
          • set k1 ty12345
          • getrange k1 0 3 返回ty12 如果0 -1 返回全部
          • setrange k1 0 xxx 返回7 此时get k1 返回xxx2345
        • setex(set with expire)键秒值/setnx(if no exist)
          • setex k4 10 v4 十秒后过期移除
          • setnx k5 v5 如果不存在就设置 如果存在就不执行
        • mset/mget/msetnx
          • mset k1 v1 k2 v2 k3 v3
          • mget k1 k2 k3
          • msetnx k4 v4 k5 v5 如果数据库存在k4 和 k5 都不存在才执行,否则都不执行
        • getset(先get再set) getset k1 v1 如果k1不存在则报错
      • List 列表 左右两边都可以插入
        • lpush/rpush/lrange
          • lpush list01 1 2 3 4 5 逆反
          • rpush list02 1 2 3 4 5 正常
          • lrange list01 0 -1 查看list01集合的全部内容
        • lpop/rpop
          • lpop list01 返回5 lpop list02 返回1、删除表头、返回删除的内容
          • rpop list01 返回1 rpop list02 返回5、删除表尾、返回删除的内容
        • lindex ,按照索引下标获得元素(从上到下) lindex list01 2 返回2
        • llen 获取长度 llen list01 返回长度数
        • lrem 删除N个value lrem list01 2 3 表示删除list01中2个3 .返回删除的数量
        • ltrim 截取下标从0开始.截取内容为key的新value. ltrim list01 0 4 表示截取下标为0 1 2 3 4的数据
        • rpoplpush 把第一个的尾值放到第二个首值 rpoplpush list01 list02 此时list01的最后一个值会被移除.list02会添加一个list01移除的那个值到下标0处
        • lset list01 1 ddd 把list01下标为1的值改为ddd
        • linsert key before/after 值1 值2 执行成功返回key的长度 失败返回-1
          • linsert list01 before aaa bbb 在list01中的第一个值为aaa的前面添加bbb
          • linsert list01 after ccc ddd 在list01中的第一个值为ccc的后面添加ddd
      • Set 集合 String类型的无序集合.值不允许重复.
        • sadd/smembers/sismember
          • sadd set01 1 1 1 1 2 3 3 4 返回插入成功数4
          • smembers set01 查看set01里面的数据
          • sismember set01 x 查询值x是否在set01里面.是返回1 否返回0.
        • scard 获取集合里面的元素个数
        • srem set01 3 删除集合中set01的值为3的数据
        • srandmember set01 3 在set01中随机出三条数据
        • spop set01 3 随机删除三条数据
        • smove set01 set02 x 把set01中的值x移到set02中
        • sdiff/sinter/sunion
          • sdiff set01 set02 ... 差集 set01中有.而set02和后面中没有
          • sinter set01 set02 ... 交集 set01 和 set02和后面中都有
          • sunion set01 set02 ... 并集 set01 和 set02和后面中全部的数据.去重
      • Hash 哈希 类似于java的Map.KV模式不变.但V是一个键值对.
        • hset/hget/hmset/hmget/hgetall/hdel
          • hset user id 11 设置key为user key为id 值为11.插入成功返回1
          • hget user id 得到key为user key为id 的值.返回11
          • hmset student id 7 name daniu age 26 插入成功返回ok.失败error.
          • hmget student id name age 返回三条数据第一条"7".第二条"lisi".第三条"26".
          • hgetall student 返回student的所有数据.返回6条.第一条"id".第二条"7".第三条"name".第四条"lisi"以此类推
          • hdel student name age 删除key为student key为name age 的数据.返回2.此时hgetall返回两条数据
        • hlen student 返回student里面key的数量
        • hexists student id 判断student中是否有key为id.有返回1.无返回0
        • hkeys/hvals
          • hkeys student 得到student中所有的key
          • hvals student 得到student中所有的value
        • hincrby/hincrbyfloat
          • hincrby student id 2 执行一次id的值都会增长2
          • hincrbyfloat id 1.1 执行一次id的值都会增长1.1
        • hsetnx user id 25 如果不存在则添加.添加成功返回1.失败返回0
      • Zset(sorted set) 有序集合 和set一样不允许重复,不同的是每个元素都会关联一个double类型的分数,通过这些分数从大到小降序排列,成员是唯一的,分数是可以重复的
        • 多说一句
          • 在set基础上,加一个score值
          • 之前set是k1 v1 v2 v3
          • 现在zset是k1 score1 v1 score2 v2
        • zadd
          • zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5 返回插入数量5
        • zrange
          • zrange zset01 1 3 查看下标为1 2 3的数据.返回三条数据.第一条"v2".第二条"v3".第四条"v4"
          • zrange zset01 1 3 withscores 查看下标为1 2 3的数据.返回六条数据.第一条"v2".第二条"70".第四条"v3".以此类推
        • zrangebyscore key 开始score 结束score
          • zrangebyscore zset01 60 90 返回60<=score<=90的值.返回四条数据.第一条"v1".第二条"v2".第三条"v3".第四条"v4".
          • zrangebyscore zset01 60 90 withscores 返回60<=score<=90的值和score.返回八条数据.第一条"v1".第二条"60".第三条"v2".第四条"70".以此类推
          • zrangebyscore zset01 60 (90 返回60<=score<90的值.返回三条数据.第一条"v1".第二条"v2".第三条"v3".
          • zrangebyscore zset01 (60 (90 返回60<score<90的值.返回两条数据.第一条"v2".第二条"v3".
          • zrangebyscore zset01 60 90 withscores limit 2 1 先查出60<=score<=90的数据.从查询出来的数据下标2开始查询1条数据.此时返回两条数据.第一条"v3".第二条"80"
        • zrem zset01 v5 v3 返回成功删除的记录数2
        • zcard/zcount key score区间/zrank key values值,作用是获取下标值/zscore key 对应的值,获得分数
          • zcard zs1 返回所有的记录数,相当于集合的大小
          • zcount zs1 60 70 返回60 到 70 的数据,闭区间
          • zrank zs1 v3 得到对应的下标,v1为0 v2为1 v3为2
          • zscore zs1 v1 获取key为zs1 值为v1的score
        • zrevrank key values值,作用是逆序获得下标值 与zrank相反
        • zrevrange 与zrange查询反方向
        • zrevrangebyscore key 结束score 开始score 与zrangebyscore反方向,结束为最大值,开始为最小值
  • 相关阅读:
    Android&Handler2
    ACM&数字阶梯求和(大数问题)
    Android&MyThread
    【转】 《基于MFC的OpenGL编程》Part 15 Selection
    【转】 《基于MFC的OpenGL编程》Part 12 Creating and Using Display Lists
    【转】《基于MFC的OpenGL编程》Part 16 Reflection
    【转】 《基于MFC的OpenGL编程》Part 8 Colors
    【转】 《基于MFC的OpenGL编程》Part 14 Quadrics
    开发不同语言版本的C#程序
    基于ADS40的线阵摄影测量及数据处理
  • 原文地址:https://www.cnblogs.com/taopanfeng/p/10781672.html
Copyright © 2011-2022 走看看