美文网首页
Redis基础讲解2(常用命令的使用)

Redis基础讲解2(常用命令的使用)

作者: AD甜蜜蜜 | 来源:发表于2017-11-14 20:08 被阅读0次

    1. redis的五大数据类型

    • String(字符串): String 是redis最基本的数据类型,一个key对应一个value;String是二进制安全的;’redis的String可以包含任何的数据(jpg图像和序列化的对象等都可以包含);注意:一个redis中的字符串value最多可以存512M
    • Hash(哈希,类似Map): redis hash是一个键值对集合;是一个String类型的field和value的映射表 ,hash适合用于存储对象;类似Java里面的Map<String,Object>
    • List(列表): redis列表是简单的字符串列表,按照插入的顺序排序,可以添加一个元素到列表的头或者尾(注意:列表的底层是链表
    • Set(集合): Set是String类型的无序无重复的集合。他是通过HashTable实现的。
    • Zset(sorted set: 有序集合): 和Set一样无重复集合,不同的是每个元素都会关联一个double类型的分数score;redis正式通过分数为集合中的成员进行从小到大的排序。Zset的成员是唯一的,但score却是可以重复的。

    2. redis键(key)

    • keys *: 列出所有的key
    • exists key : 判断某个key是否存在
    • move key db:将某个key移动到某个库去,例如move hello 7 将key为hello的这个key 移动到第8号库。
    • expire key 秒钟 :为给定的key设置过期时间
    • ttl key:查看还有多少秒过期(-1表示永不过期,-2表示已过期)
    • type key:查看key是什么类型
    • del key:删除key

    3. redis字符串(String:单值单value)

    • set key value:设置key;
      get key :获取key;
      del key: 删除key;
      append key value: 追加;
      strlen key: 获取key的长度
    • incr key:值为数字的value+1;
      decr key:值为数字的value-1;
      incrby key 增长值:值为数字的value+增长值;
      decrby key 增长值:值为数字的value-增长值;
      注意:如果value不是数字,那么执行这四个命令将报错
    • getrange:获取指定区间的字符串;如getrange key 0 -1: 表示获取key对应的value与get key一样,getrange key 0 3则是获取这个key对应的value的0-3个字符,包括第三个,也就是说输出的是4个字符;
      setrange: 用来替换字符;如setrange key 0 111: 表示从0个位置开始替换value的值,替换前三个为111。如果此key的value是qwert,那么执行了setrange key 0 111命令以后value就变成了 111rt。
    • setex key 秒 value : 设置key的同时为其设置过期时间;如setex abc 10 sssss设置key为abc,value为sssss的数据过期时间为10秒钟
      setnx key value: 如果key不存在则插入key和value,如果key存在则不进行插入,防止覆盖
    • mset key1 value1 key2 value2 key3 value3 ...批量设置key和value的值
      mget key1 key2 key3...批量获取key的值
      msetnx key1 value1 key2 value2 key3 value3 ...如果有一个key已经存在,那么这个命令将不会把数据插进去,如果key都不存在才会把所有的都插进去。

    4. redis列表(List :单值多value)

    • lpush key value1 value2 value3 ... valuen 从左边添加(先进后出)
      rpush key value1 value2 value3 ... valuen 从右边添加(先进先出)
      lrange key 0 -1 将key所有的value都列出,如果是lpush的,列出的顺序应该是valuen ... value3 value2 value1;如果是rpush 的,列出的顺序将是:value1 value2 value3 ... valuen

    • lpop key :取栈顶的元素出栈
      rpop key:取栈底的元素出栈

    • lindex key 下标:按照索引的下标获取元素,从上往下获取的

    • llen key:获取这个key的value的长度

    • lrem key n个 value:删除list中的n个value;如lrem list1 3 ttt就是将list1中value为ttt的删除掉3个。如下图:

      lrem.png
    • ltrime key 起始值 终止值 :将key中的value从起始值开始,到终止值结束截取出来重新赋值给key;如下图:

      ltrime.png
    • rpoplpush 源list 目的list 将源list的栈底元素移动到目的list的栈顶中去,如下图:

      rpoplpush .png
    • lset key index value 给index位置的值重新赋值为value

    • linsert key before/after value 值 :在value前面或者后面插入一个值

    5. redis集合(Set:单值多value)

    • sadd key value1 value2 value3 ... valuen 新增set集合(重复的数据会过滤掉)
      smembers key 查看所有的value
      sismember key value: 在key这个集合中是否存在value这个值
    • scard key: 获取集合里面的元素个数
    • srem key value : 删除集合中的某个value
    • srandmember key :整数n:在key这个集合中随机的出n个value(用来抽奖)
    • spop key :随机出栈
    • smove key1 key2 key1里面的某个值:将key1里面的某个值移到key2中去
    • sdiff key1 key2 : 获取key1和key2 的差集(在key1中并且不在key2中的值)
    • sinter key1 key2: 获取key1和key2的交集(在key1中并且又在key2中的值)
    • sunion key1 key2: 获取key1和key2的并集(在key1中或者在key2中的值)

    6. redis哈希(hash:KV模式不变,但是V是一个键值对《重要》)

    • hset key field value;:新增key下面的field下的value值
      hget key field:获取key下面的field的值
      hmset key field value [file value ....]:批量新增key下面的field的值
      hmget key field [field ...] : 批量获取多个key
      hgetall key:获取key下面的所有值
      hdel key field [field ...]:删除key下面的field,可以删除多个;如下图: set1.png
    • hlen key 获取这个这个key有多少个属性
    • hexists key field: 判断这个field是否在这个key里面
    • hkeys key:列出key下的所有field
    • hvals key:列出key下所有的value
    • hincrby key field 整数n :给field的value增加n(只能给整数递增)
    • hincrbyfloat key field 小数n:给field的value增加小数n(只能给小数增加)
    • hsetnx key field value : 给key增加一个不存在的field,如果存在此field,将不能新增,可以防止覆盖

    7. redis有序集合Zset(sorted set:在set的基础上加了一个score值)

    • zadd key score value[score value]: 新增一个zset集合,score是排序的值
    • zrange key 0 -1: 查询所有的value值
    • zrange key 0 -1 withscores : 查询所有value并且携带score
    • zrangebyscore key min max: 查询score在min 和max之间的所有value,包含min和max
    • zrangebyscore key (min (max加了'('这个符号后,就是不包含
    • zrangebyscore key min max limit offset count:表示score在min和max之前的并且从offset开始查询count条,limit相当于mysql的分页
    • zrem key value:删除value这个元素
    • zcard key: 统计value的个数
    • zcount key min max :统计在min-max区间的个数
    • zrank key value : 获得value的下标值
    • zscore key value : 获得value的score值
    • zrevrank key value: 逆序获得下标值
    • zrevrange key 0 -1:逆序输出所有的value
    • zrevrangebyscore key max min:获取min-max区间的所有value并倒序输出
      如下图所示: zset1.png zset2.png

    相关文章

      网友评论

          本文标题:Redis基础讲解2(常用命令的使用)

          本文链接:https://www.haomeiwen.com/subject/zlffvxtx.html