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

1. redis的五大数据类型

  • String(字符串): String 是redis最基本的数据类型,一个key对应一个value;String是二进制安全的;’redis的String可以包含任何的数据(jpg图像和序列化的对象等都可以包含);注意:一个redis中的字符串value最多可以存512M
  • Hash(哈希,类似Map): redis hash是一个键值对集合;是一个String类型的field和value的映射表 ,hash适合用于存储对象;类似Java里面的Map
  • 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个。如下图:

    Redis基础讲解2(常用命令的使用)_第1张图片
    lrem.png

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

    Redis基础讲解2(常用命令的使用)_第2张图片
    ltrime.png

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

    Redis基础讲解2(常用命令的使用)_第3张图片
    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,可以删除多个;如下图:
    Redis基础讲解2(常用命令的使用)_第4张图片
    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并倒序输出
    如下图所示:
    Redis基础讲解2(常用命令的使用)_第5张图片
    zset1.png
    Redis基础讲解2(常用命令的使用)_第6张图片
    zset2.png

你可能感兴趣的:(Redis基础讲解2(常用命令的使用))