Redis的数据类型(String,hash,list,set,zet)及 常用命令

时间:2024-04-06 22:44:19

redis基础命令

select切换数据库:一共16个库(索引从0开始)
Redis的数据类型(String,hash,list,set,zet)及 常用命令
dbsize查看当前数据库的key的数量
Redis的数据类型(String,hash,list,set,zet)及 常用命令
flushdb:清空当前库
Flushall;通杀全部库

key 相关的命令

  1. keys *:查看当前数据库所有的key
    命令: keys *
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  2. exists key的名字:判断某个key是否存在
    命令:exists key的名字 (存在:返回1,不存在:返回0)
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  3. move key db:移动key到指定的库(相当于剪切,一个库移动到另一个库)
    命令:move key db
    例如:把0号库的 key为a1 的数据移动到1号库
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  4. expire key 秒钟 和 ttl key:设置过期时间,和查看过期时间
    命令:ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期
    命令:expire key 数字 为给定的key设置过期时间
    例:给a1 设置过期时间为10秒,并查看还有多长时间过
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  5. type key:查看你的key是什么类型
    命令: type key
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

Redis 数据类型及其相关命令

Redis字符串(String)

redis 的string类型是单值单value

  1. set/get/del/append/strlen
    命令:

    1. set key value : 往redis存值
    2. get key:取出对应的key的值
    3. del key:删除对应的key和值
    4. append key value: 往key 的值中追加数据(相当与字符串拼接)
    5. strlen key:对应字符串的长度

    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  2. Incr/decr/incrby/decrby (一定要是数字才能进行加减)
    命令:

    1. Incr key:每次增加1
    2. decr key: 每次减1
    3. incrby key num:key对应的数按num数量递增
    4. decrby key num:每次按num数量的递减

    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  3. getrange/setrange

    1. getrange key startIndex endIndex:获取指定区间的值包含开始和结束索引(getrange key 0 -1:表示返回所有)
    2. setrange key startIndex 值 :从指定位置设置值(覆盖了原来的值)

    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  4. setex(set with expire)/setnx(set if not exist)

    1. setex key 过期时间 值:设置值并设置过期时间
    2. setnx key 值:如果不存在才插入值
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  5. mset/mget/msetnx

    1. mset key1 v1 key2 v2 key3 v3:一次可以插入多个值
    2. mget key1 key2 key3:一次取多个值
    3. msetnx key1 v1 key2 v2 key3 v3: 如果插入的key不存在才插入,只要有一个存在不插入
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  6. getset(先get再set)

    getset key value:先取出先前的值,然后在原来的值覆盖
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

Redis列表(List)

介绍:
redis 的string类型是单key多value (value 可以重复)
底层是一个双向链表,可以往左右插入值
存储类型:
key ----> 双向链表

命令:

  1. lpush/rpush/lrange (链表头表示左,链表尾表示右)
    1. lpush key v1 v2 v3... : 往链表的左边(头)插入多个值
    2. rpush key v1 v2 v3...:往链表的右边(尾)插入多个值
    3. lrange key startIndex endIndex:取出链表对应范围的值,从头开始取(注意:如果endIndex=-1的话,表示取到链表的最后,)
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  2. lpop/rpop

    lpop lkey:从链表头取出链表元素(取一个少一个)
    rpop lkey:从链表尾部取出链表元素(取一个少一个)
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  3. lindex,按照索引下标获得元素

    lindex lkey index:取出对应下标的值
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  4. llen 获取存储元素的个数

    llen lkey:对应链表的值的个数
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  5. lrem lkey 删N个value

    lrem lkey num(要删除的数量) value:删除链表中num数量的value(当有多个相同的value时,我们可以删除多个vlaue)
    如:lrem list02 2 3:表示从list02链表中删除2个数量的3
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  6. ltrim key 开始index 结束index,截取指定范围的值后再赋值给key

    ltrim lkey startInde endIndex:从链表中截取指定范围的值,然后把该值有重新赋值给该链表(原来链表的值将会删除)
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  7. rpoplpush 源列表 目的列表

rpoplpush 源列表 目的列表:从源链表的尾部位置取出一个元素,然后把该元素从目标链表的头部插入,
Redis的数据类型(String,hash,list,set,zet)及 常用命令

  1. lset key index value

    lset key index value:修改链表对应索引的值
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  2. linsert key before/after 值1 值2

    linsert lkey before/after v1 v2:在v1值的 前面/后面 插入值v2
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

Redis集合(Set)

介绍:
set类型是单key 多value (value 不许重复)

命令:

  1. sadd/smembers/sismember

    1. sadd skey v1 v2 v3:往set集合里面添加数据,如果有重复值,只能插入一个
    2. smembers skey:取出该集合的所有值
    3. sismember skey value:判断value在该set中是否存在,0:不存在;1:存在
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  2. scard,获取集合里面的元素个数

    scard skey: 获取集合里面的元素个数
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  3. srem key value 删除集合中元素

    srem key value:删除对应集合指定的值
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  4. srandmember key 某个整数(随机出几个数)

    srandmember skey num:从set集合中随机取出num数量的值
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  5. spop key 随机出栈

    spop skey:随机从集合中弹出一个元素
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  6. smove key1 key2 在key1里某个值 作用是将key1里的某个值赋给key2

    smove key1 key2 在key1里某个值 :
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  7. 数学集合类(差集:sdiff, 交集:sinter, 并集:sunion)

    sdiff skey01 skey02:求差集(即在skey01除去skey01和skey02的交集)
    sinter skey02 skey02:交集,skey02和skey02都有的值
    sunion skey01 skey02:并集,skey02和skey02值的合并
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

Redis哈希(Hash)

介绍:
Redis哈希(Hash):单key 单value,但是value是一个k,v键值对

命令:

  1. hset/hget/hmset/hmget/hgetall/hdel(重要)

    1. hset hkey k v:插入一个键值对(k,v)
    2. hget hkey k1:从hkey中的键值对中取出key 是k1 的值
    3. hmset hkey k1 v1 k2 v2...:一次插入多个键值对
    4. hmget hkey k1 k2 k3...:一次取出多个对应key的值
    5. hgetall hkey :取出hkey 对应的所有的k,v键值对
    6. hdel hkey k1:删除 k1键值对

    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  2. hlen

    hlen hkey :求出hkey对应的k,v键值对的个数
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  3. hexists

    hexists hkey k:在hkey的所有k,v键值对中是否存在键是k的键值对
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  4. hkeys/hvals

    hkeys hkey :获取hkey中所有键值对的 键
    hvals hkey:获取hkey中所有键值对的 值
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  5. hincrby/hincrbyfloat

    1. hincrby hkey k num:给 k 对应的值 自增 num的数 (v = v + num)
    2. hincrbyfloat hkey k float: 给 k 对应的值 自增 float的小数数 (v = v + float)
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  6. hsetnx

    hsetnx hkey k v:往hkey 里面添加k,v键值对,当hkey 没有重复k就插入成功,否则就插入失败
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

Redis有序集合Zset(sorted set)

介绍:
Zset 在set基础上,加一个score值。
之前set是k1 v1 v2 v3,
现在zset是k1 score1 v1 score2 v2

命令:

  1. zadd/zrange

    1. zadd zkey score1 v1 score2 v2 score3 v3:往set里面放数据,在每个数据的前面都有一个对应的 score(排名值)
    2. zrange zkey startIndex endIndex:取出指定范围set里面的值,不带score
    3. zrange zkey startIndex endIndex withscore:取出指定范围set里面的值,带score
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  2. zrangebyscore key [(]开始score [(]结束score

    1. zrangebyscore zkey [(]开始score [(]结束score :表从对应的zkey集合中取出 指定范围score 的值 (([(]表示可选值 , ( :表示不包含))
    2. zrangebyscore zkey 开始score 结束score limit num1 num2:表从对应的zkey集合中取出 指定范围score 的值,从开始下标步num1 开始,取出num2数量的值 (相当于分页)
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  3. zrem

    zrem zkey v:删除zkey对应的value值,包括score
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  4. zcard,zcount ,zrank ,zscore

    1. zcard zkey:获取zkey对应集合的size大小
    2. zcount zkey startScore endScore:统计zkey集合对应scoreq区间的size个数
    3. zrank zkey v:获取v对应的下标
    4. zscore zkey v:获取v对应的score
      Redis的数据类型(String,hash,list,set,zet)及 常用命令
  5. zrevrank

    zrevrank zkey v:逆序获得v下标值 (最尾部开始,最尾部的下标为0)
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  6. zrevrange (倒序遍历)

    zrevrange zkey startIndex endIndex:倒序遍历,与zrange相反
    Redis的数据类型(String,hash,list,set,zet)及 常用命令

  7. zrevrangebyscore zkey 结束score 开始score

    zrevrangebyscore zkey 结束score 开始score:从集合尾部的score开始往前面score 结束,返回对应的值

    Redis的数据类型(String,hash,list,set,zet)及 常用命令