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

Redis的值value(数据结构类型)

程序员文章站 2022-05-29 12:23:56
Redis的数据结构类型,指的是redis的值的value类型; Redis的常用数据结构类型:string,list,set,sortedSet,hash 一.sting的类型 string类型是redis最常见的数据结构类型,存储的值为字符串。 1.1String相关命令 set key val ......

  redis的数据结构类型,指的是redis的值的value类型;

  redis的常用数据结构类型:string,list,set,sortedset,hash

一.sting的类型

  string类型是redis最常见的数据结构类型,存储的值为字符串。

  1.1string相关命令

  set key value :设置一个key,值为value,类型为string类型;如果这个key已经存在,则更新这个key的值。

    返回值

      1表示成功

      0表示失败

  setnx key vale:如果这个key不存在,则设置一个key,值为value;如果key存在,则不做更新。

    返回值

      1表示成功

      0表示失败

  get key:获取对应的value值;如果key不存在,则返回nil。

  incr key:将key中存储的数字值增一,然后返回。如果这个key不存在,那么key的值会先被初始化为0,然后再执行incr操作。如果这个key对应的value值,不能表示数字,则会返回一个错误。

  incrby key increment:将key增加指定步长。

  decr key:将key中储存的数字值减一,然后返回。如果这个key不存在,那么key的值会先被初始化为0,然后再执行incr操作。如果这个key对应的value值,不能表示数字,则会返回一个错误。

  decrby key decrement:将key减少对应的步长值。

  append key value:如果key已经存在,则将value追加到这个key原先的value值的末尾。如果这个key不存在,则执行set操作。

  redis的key是单线程模式,这意味着一瞬间只有一个线程能够持有这个key,所以,可以使用redis解决部分涉及线程安全的业务。

 

二.list类型

  1.特点

    (1)基于linked list实现

    (2)元素是字符串类型

    (3)列表头尾增删快,中间增删慢,增删元素是常态

    (4)元素可以实现重现

    (5)最多包含2^32-1元素

  2.list类型相关命令

    lpush key value [value ...]:将一个或多个value插入到列表key的表头(即从左边插入);如果有多个value值,那么各个value值按从左到右的顺序依次插入表头;如果key不存在,一个空列表会被创建并执行lpush操作,当key存在但不是列表类型时,返回一个错误。

    rpush key value [value...]:尾部添加(从右向左),操作同上。

    llen key :返回key对应list长度,key不存在返回0,如果key对应类型不是list返回错误。

    lindex key index:index元素在list列表的下角标,从0开始;lindex是从左到右取元素。

    lrange key start stop:获取指定区间的所有元素;下角标从0开始,0表示第一个元素,1表示第二个,以此类推;-1表示最后一个元素,-2表示倒数第二个元素,以此类推。

    lpop key :移除并返回列表中的第一个元素。

    rpop key:移除并返回列表中的最后一个元素。

三.hash类型(散列)

  1.特点

    (1)由field和之关联的value组成map键值对

    (2)field和value是字符串类型;

    (3)一个hash中最多包含2^32-1键值对。

  2.hash相关命令

    hset key field value:设置hash field为指定值,如果key不存在,则先创建,如果field已经存在那么将更新这个field的值。

    hget key field:获取指定的hash field

    hmget key filed1...fieldn:获取全部指定的hash field

    hmset key filed1 value1 ... filedn valuen:同时设置hash的多个field

    hexists key field:测试指定field是否存在

    hdel key field:删除指定的hash field

     hlen key:返回指定hash的field数量

     hkeys key:返回hash的所有field

     hvals key:返回hash的所有value

    hgetall:返回hash的所有filed和value

四:set相关命令

  1.特点

    (1)无序的,去重的;

    (2)元素是字符串类型;

    (3)最多包含2^32-1元素。

  2.set相关命令

    sadd key member [member  ...](无序不重复):将一个或多个 member 元素加入到集合key 当中,已经存在于集合的 member 元素将被忽略。假如 key 不存在,则创建一个只包含 member 元素作成员的集合。 key 不是集合类型时,返回一个错误。

 

    smembers key:返回集合 key 中的所有成员。不存在的 key 被视为空集合。

 

    spop key:移除并返回集合中的一个随机元素。被移除的随机元素。key不存在或key是空集时,返回nil。

 

    scard key:返回集合key的基数(集合中元素的数量)。集合的基数。key不存在时,返回0。

 

交集、并集、差集sinter sunion sdiff

    sinter key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的交集。不存在的 key 被视为空集。

 

    sunion key [key ...]:返回一个集合的全部成员,该集合是所有给定集合的并集。不存在的 key 被视为空集。

 

    sdiff key [key ...]:返回一个集合的全部成员,该集合是所有给定集合之间的差集。不存在的 key 被视为空集。