欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Redis常用五大数据类型

程序员文章站 2023-11-30 16:20:52
五大数据类型常用的命令(此处只介绍常用命令更多命令请参考https://www.redis.net.cn/tutorial/3505.html): Key(键): keys * 查看当前库全部key名称。 exists key 判断某个key是否存在。存在返回1,不存在返回0。 move key d ......

五大数据类型常用的命令(此处只介绍常用命令更多命令请参考https://www.redis.net.cn/tutorial/3505.html):

 key(键):

  keys *             查看当前库全部key名称。
  exists key          判断某个key是否存在。存在返回1,不存在返回0。
  move key db           把当前库某个key移到指定库。
  expire key second       为指定的key设置过期时间,单位为秒。
  ttl key            查看指定key还有多少秒过期,-1表示永不过期,-2表示已过期(如果过期该key会被移出库)。
  type key             查看你的key是什么数据类型。
  del [key...]          删除指定key,可同时删除多个。

 


 

 1.string(字符串):

  string类型是redis最基本的数据类型,redis中一个字符串value最多可以是512m。
  string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。

 

  set        设置一个key-value。
  get        获取一个key的value。
  del        删除一个或多个key-value。
  append      对指定key的value追加值。
  strlen       获取指定key的value的长度。
  incr        对指定key的value每次加1。 一定要是数字才能进行加减。
  decr       对指定key的value每次减1。 一定要是数字才能进行加减。
  incrby       对指定key的value每次加n(数量可指定)。 一定要是数字才能进行加减。
  decrby         对指定key的value每次减n(数量可指定)。 一定要是数字才能进行加减。
  getrange     获取指定key的value的指定区间范围内的值,类似于java的substring。
  setrange     设置指定key的value的指定区间范围内的值,原区间范围的值会被覆盖。
  setex(set with expire)      设置一个key-value并指定该key的过期时间(秒)。
  setnx(set if not exist)      设置一个key-value,如果该key存在则不设置,如果不存在则设置。
  mset        设置一个或多个key-value。
  msetnx       设置一个或多个key-value,如果key都不存在则设置,如果其中有一个key存在则不设置。
  mget        获取一个或多个key的value。
  getset         获取一个key(key必须存在)并设置该key的值,返回原来的值。

 


 

 2.hash(哈希,类似java里的map):

  redis hash 是一个键值对集合。redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

  类似java里面的map<string,object>。kv模式不变,但v是一个键值对

 

  hset      添加一个hash集合并往里面添加一对kv。
  hget      获取hash集合某个key的数据。
  hmset     添加一个hash集合并往里面添加n对kv。
  hmget     获取hash集合n个key的数据。
  hgetall     获取hash集合全部的kv数据。
  hdel      移除hash集合中的n个key。
  hlen      获取hash集合中key的数量。
  hexists     判断hash集合中某个key是否存在。
  hkeys     获取hash集合全部key。
  hvals     获取hash集合全部value。
  hincreby   给hash集合中的某个key加n。 一定要是数字才能加,加整数。
  hincrebyfloat 给hash集合中的某个key加n。 一定要是数字才能加,加整数或小数。
  hsetnx    添加一个hash集合并往里面添加一对kv(如果key不存在则添加,存在则不添加)。

 


 

 3.list(列表):

   redis list 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。

 

  说明:l(left)、r(right),将结构理解为栈,l表示栈顶、r栈底。
  lpush      添加一个list列表,将一个或多个值插入到列表头部,先进后出。
  rpush      添加一个list列表,将一个或多个值插入到列表尾部,先进先出。
  lrange      获取list列表指定区间范围内的值。
  lpop      移除list列表顶部元素(第一个元素),并返回被移除的元素。
  rpop      移除list列表底部元素(最后一个元素),并返回被移除的元素。
  lindex     按照顶部索引下标获得元素。
  llen      获取list列表的长度。
  lrem      移除list列表n个value。(lrem key count value)。
  ltrim      截取list列表指定范围内的值后再赋值给list列表(原值将被截取值覆盖)。
  rpoplpush   将指定列表的底部元素移到目标列表的顶部。
  lset      设置列表指定下标的值。
  linsert    在指定列表的某个元素前面或后面添加元素。(linsert key before/after 列表中的元素 添加的元素)。

  list列表总结:
   它是一个字符串链表,left、right都可以添加。
   如果键不存在,创建新的链表。
   如果键已存在,新增内容。
   如果值全移除,对应的键也就消失了。
   链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就比较低了。

 


 

 4.set(集合):

    redis set是string类型的无序集合。它是通过hashtable实现的。

 

  sadd        将一个或多个成员插入到set集合中。
  smembers     遍历set集合。
  sismember      判断指定元素是否是set集合的成员。
  scard        获取set集合中元素的个数。
  srem        移除set集合中n个元素。
  srandmember    随机获取set集合中n个元素。
  spop        随机移除set集合中n个元素并返回被移除的元素。
  smove       将指定集合中的某个元素移到目标集合中。
  sdiff        集合的减集。
  sinter        集合的交集。
  sunion      集合的并集。

 


 

 5.zset(sorted set:有序集合):

  redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。
  redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

 

  zadd          将一个或多个成员插入到zset集合中。(zadd key 分数 值...)例如:[zadd zset1 80 zhangsan]。
  zrange         获取zset集合指定区间范围内的值(zrange key start stop [withscores])。加withscores可查看分数与值
  zrangebyscore       获取zset集合指定分数范围内的值(zrangebyscore key [(]min [(]max [limit offset count]),“(”表示不包含。
  zrem          移除zset集合中n个元素。
  zcard          获取zset集合中元素的个数(不包含分数,分数和元素是一体的)。
  zcount        获取zset集合指定分数范围内的个数。
  zrank          获取zset集合某个元素的下标。
  zscore         获取zset集合某个元素对应的分数。
  zrevrank        逆序获取zset集合某个元素的下标。
  zrevrange      逆序获取zset集合指定区间范围内的值。
  zrevrangebyscore    逆序获取zset集合指定分数范围内的值。