Redis 五种数据类型

Redis支持五种数据类型

  • String(字符串
  • Hash(哈希)
  • List(列表)
  • Set(集合)
  • zset(sorted set:有序集合)
类型 简介 特性 场景
String(字符串) 二进制安全 可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M
Hash(字典) 键值对集合,即编程语言中的Map类型 适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去) 存储、读取、修改用户属性
List(列表) 链表(双向链表) 增删快,提供了操作某一段元素的API 1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列
Set(集合) 哈希表实现,元素不重复 1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作 1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐
Sorted Set(有序集合) 将Set中的元素增加一个权重参数score,元素按score有序排列 数据插入集合时,已经进行天然排序 1、排行榜 2、带权重的消息队列

String(字符串)

string类型是二进制安全的,redis的string可以包含任何数据,如图像、序列化对象。一个键最多能存储512MB。二进制安全是指,在传输数据的时候,能保证二进制数据的信息安全,也就是不会被篡改、破译;如果被攻击,能够及时检测出来 。

  • 设置键值 :set key value

  • 获取键值 ,如果不存在此键则返回nil :get key
    在这里插入图片描述

  • 设置多个键值:mset key1 value1 key2 value2

  • 获取多个键值:mget key1 key2
    在这里插入图片描述

  • 设置键值及过期时间,以秒为单位 :setex key seconds value
    在这里插入图片描述

  • 只有在 key 不存在时设置 key 的值。setnx key value
    在这里插入图片描述

  • 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。MSETNX key value [key value ...]

  • 返回 key 中字符串值的子字符 GETRANGE key start end

  • 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。GETSET key value

  • 将key对应的value加1 。INCR key

  • 将key对应的value加整数 。 INCRBY key increment

  • 将key对应的value减1 。 DECR key

  • 将key对应的value减整数。 DECRBY key decrement

  • 追加值 APPEND key value

  • 获取值长度 STRLEN key

hash

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2的32次方 - 1 键值对(40多亿)。

  • 设置单个属性 :hset key field value
  • 设置多个属性 :hmset key field1 value1 field2 value2 ...
  • 只有在字段 field 不存在时,设置哈希表字段的值。 HSETNX key field value

在这里插入图片描述

  • 获取⼀个属性的值 : hget key field
  • 获取多个属性的值 : hmget key field1 field2 ...
  • 获取指定键所有的属性 :hkeys key
  • 获取指定键所有属性的值:hvals key

在这里插入图片描述

  • 删除属性及值 :hdel key field1 field2 ...
  • 删除整个hash键及值 :del key
  • 判断属性是否存在 : hexists key field

在这里插入图片描述

list

列表是简单的string列表,按照插入顺序排序,可以在列表的头部或者尾部添加元素。

  • 在左侧插⼊数据 :lpush key value1 value2 ...
  • 在右侧插⼊数据 :rpush key value1 value2 ...
  • 在指定元素的前或后插⼊新元素 :linsert key before或after 现有元素 新元素

在这里插入图片描述

  • 返回列表⾥指定范围内的元素 :lrange key start stop
    • start、stop为元素的下标索引
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

在这里插入图片描述

  • 设置指定索引位置的元素值 :lset key index value
    • 索引从左侧开始,第⼀个元素为0
    • 索引可以是负数,表示尾部开始计数,如-1表示最后⼀个元素

在这里插入图片描述

  • 移出并获取列表的第一个元素 :lpop key
  • 移出并返回列表最后一个元素 : rpop key

在这里插入图片描述

  • 删除指定元素: lrem key count value
    • 将列表中前count次出现的值为value的元素移除
    • count > 0: 从头往尾移除
    • count < 0: 从尾往头移除
    • count = 0: 移除所有

在这里插入图片描述

  • 获取列表长度:llen key
  • 通过索引获取列表中的元素:lindex key index

在这里插入图片描述

set

⽆序集合,元素为string类型,元素具有唯⼀性,不重复。说明:对于集合没有修改操作。

  • 添加元素 :sadd key member1 member2 ...
  • 返回集合元素个数:scard key
  • 返回key集合所有的元素 :smembers key

在这里插入图片描述

zset

sorted set,有序集合,元素为string类型,元素具有唯⼀性,不重复。每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序。说明:没有修改操作。

  • 添加元素:zadd key score1 member1 score2 member2 ..

向键’a4’的集合中添加元素’lisi’、‘wangwu’、‘zhaoliu’、‘zhangsan’,权重分别为4、5、6、3

在这里插入图片描述

  • 返回指定范围内的元素 :zrange key start stop

  • 返回元素个数:zcard key

  • 返回score值在min和max之间的成员 : zrangebyscore key min max

  • 返回成员member的score值 : zscore key member
    在这里插入图片描述

  • 删除指定元素 :zrem key member1 member2 ..

  • 删除权重在指定范围的元素:zremrangebyscore key min max
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38819889/article/details/106382928