Redis数据类型

字符串(Strings):


字符串是Redis中最基本的数据类型。一个 key 对应一个 value。

string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。string 类型的值最大能存储 512MB。

String类型的常见命令
  1. 设置值和获取值:

    • SET key value:设置键的值。
    • GET key:获取键的值。
  2. 追加和获取子串:

    • APPEND key value:将值追加到键的末尾。
    • GETRANGE key start end:获取键值中指定范围的子串。
  3. 递增和递减:

    • INCR key:将键的值递增1。
    • DECR key:将键的值递减1。
    • INCRBY key increment:将键的值递增指定的增量。
    • DECRBY key decrement:将键的值递减指定的减量。
  4. 获取和设置字符串长度:

    • STRLEN key:获取键值的长度。
    • SETEX key seconds value:设置键值,并指定过期时间(单位:秒)。
  5. 设置和获取子串:

    • SETRANGE key offset value:将键值中从指定偏移量开始的子串替换为指定值。
    • GETSET key value:设置键的新值,并返回旧值。
  6. 批量操作:

    • MSETNX key1 value1 key2 value2 ...:设置多个键值对,如果所有键都不存在才执行。
    • MGET key1 key2 ...:同时获取多个键的值。

Hash(哈希)

是一种键值对的集合,其中键和值都是字符串类型。散列类型适用于存储对象或实体的属性,例如用户对象的姓名、年龄等信息。可以对散列类型的字段进行读取、写入和删除操作。

例如Key1为User1 , Field 为 Age ,Value 为 1 ,Field2 为 Gender , Value 为 female.

Hash类型的常见命令
  1. 设置和获取字段值:

    • HSET key field value:设置散列键中指定字段的值。
    • HGET key field:获取散列键中指定字段的值。
    • HMSET key field1 value1 field2 value2 ...:同时设置散列键中多个字段的值。
    • HMGET key field1 field2 ...:同时获取散列键中多个字段的值。
  2. 检查字段是否存在:

    • HEXISTS key field:检查散列键中是否存在指定字段。
    • HKEYS key:获取散列键中所有字段的列表。
    • HVALS key:获取散列键中所有字段的值的列表。
  3. 获取散列长度和删除字段:

    • HLEN key:获取散列键中字段的数量。
    • HDEL key field1 field2 ...:删除散列键中指定的字段。
  4. 增减操作:

    • HINCRBY key field increment:将散列键中指定字段的值增加指定的增量。
    • HINCRBYFLOAT key field increment:将散列键中指定字段的值增加指定的浮点数增量。
  5. 批量操作:

    • HMSET key data:同时设置散列键中多个字段的值,通过提供一个包含字段和对应值的字典。
    • HGETALL key:获取散列键中所有字段和值的列表,返回一个包含字段和对应值的字典。

列表(Lists)

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

Lists类型常见命令
  1. 在列表两端插入和删除元素:

    • LPUSH key value1 [value2 ...]:将一个或多个值插入列表的左侧(头部)。
    • RPUSH key value1 [value2 ...]:将一个或多个值插入列表的右侧(尾部)。
    • LPOP key:移除并返回列表左侧的元素。
    • RPOP key:移除并返回列表右侧的元素。
  2. 获取列表长度和范围操作:

    • LLEN key:获取列表的长度(元素个数)。
    • LRANGE key start stop:获取列表指定范围内的元素(闭区间)。
  3. 在指定位置插入和删除元素:

    • LINSERT key BEFORE|AFTER pivot value:在列表中指定元素的前面或后面插入一个新元素。
    • LREM key count value:从列表中删除指定数量的匹配元素。
  4. 获取和设置指定位置的元素:

    • LINDEX key index:获取列表中指定位置的元素。
    • LSET key index value:将列表中指定位置的元素设置为新的值。
  5. 对列表进行修剪:

    • LTRIM key start stop:修剪列表,只保留指定范围内的元素,其它元素将被删除。
  6. 阻塞式操作:

    • BLPOP key1 [key2 ...] timeout:阻塞并等待从左侧弹出的第一个非空列表,并返回弹出的元素。
    • BRPOP key1 [key2 ...] timeout:阻塞并等待从右侧弹出的第一个非空列表,并返回弹出的元素。

集合(Sets):

集合是一个无序的字符串集合,不允许重复的元素。通过使用哈希表作为底层实现,Redis能够提供高效的集合操作,例如添加元素、删除元素、检查元素是否存在、计算交集、并集和差集等。哈希表的平均时间复杂度为O(1),

Sets类型常见命令
  1. 添加和删除元素:

    • SADD key member1 [member2 ...]:向集合中添加一个或多个元素。
    • SREM key member1 [member2 ...]:从集合中移除一个或多个元素。
    • SPOP key [count]:随机移除并返回集合中的一个或多个元素。
  2. 检查元素是否存在和获取集合大小:

    • SISMEMBER key member:检查指定元素是否存在于集合中。
    • SCARD key:获取集合的大小(元素数量)。
  3. 获取集合中的元素:

    • SMEMBERS key:获取集合中的所有元素。
    • SRANDMEMBER key [count]:随机获取集合中的一个或多个元素,但不移除它们。
  4. 集合间的操作:

    • SINTER key1 [key2 ...]:计算给定集合的交集。
    • SUNION key1 [key2 ...]:计算给定集合的并集。
    • SDIFF key1 [key2 ...]:计算给定集合的差集。

有序集合(Sorted Sets)

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

基本命令
  1. 添加和删除成员:

    • ZADD key score1 member1 [score2 member2 ...]:向有序集合中添加一个或多个成员,每个成员关联一个分数。
    • ZREM key member1 [member2 ...]:从有序集合中移除一个或多个成员。
  2. 获取有序集合的成员和分数:

    • ZRANGE key start stop [WITHSCORES]:按照成员的分数从小到大的顺序,获取指定范围内的成员。
    • ZREVRANGE key start stop [WITHSCORES]:按照成员的分数从大到小的顺序,获取指定范围内的成员。
    • ZSCORE key member:获取指定成员的分数。
  3. 获取有序集合的排名和分数:

    • ZRANK key member:获取指定成员在有序集合中的排名(从0开始,从小到大)。
    • ZREVRANK key member:获取指定成员在有序集合中的排名(从0开始,从大到小)。
  4. 根据分数范围获取成员:

    • ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]:按照分数范围,获取指定范围内的成员。
    • ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]:按照分数范围,获取指定范围内的成员(按分数从大到小排序)。
  5. 对成员的分数进行增减操作:

    • ZINCRBY key increment member:将指定成员的分数增加指定增量值。
  6. 获取有序集合的大小和成员数量:

    • ZCARD key:获取有序集合的成员数量(集合大小)。
    • ZCOUNT key min max:获取分数范围内的成员数量。

------------------------------------------------------------------------------------------------

先写这些吧 另外的数据类型今晚考完试再写

考试加油呀!

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值