您的位置:首页 > 房产 > 家装 > 高端网站设计 新鸿儒_论坛平台_网络营销方案策划论文_模板建站价格

高端网站设计 新鸿儒_论坛平台_网络营销方案策划论文_模板建站价格

2024/12/27 11:39:43 来源:https://blog.csdn.net/weixin_46425661/article/details/144747182  浏览:    关键词:高端网站设计 新鸿儒_论坛平台_网络营销方案策划论文_模板建站价格
高端网站设计 新鸿儒_论坛平台_网络营销方案策划论文_模板建站价格

文章目录

  • 前言
  • 一、字符串(String)
    • 应用场景
    • 常用命令
  • 二、哈希(Hash)
    • 应用场景
    • 常用命令
  • 三、列表(List)
    • 应用场景
    • 常用命令
  • 四、集合(Set)
    • 应用场景
    • 常用命令
  • 五、有序集合(Sorted Set)
    • 应用场景
    • 常用命令
  • 六、流(Stream)
    • 应用场景
    • 常用命令
  • 七、地理空间(Geospatial)
    • 应用场景
    • 常用命令
  • 八、位图(Bitmap)
    • 应用场景
    • 常用命令
  • 九、基数统计(HyperLogLog)
    • 应用场景
    • 常用命令


前言

Redis是一个开源的、高性能的键值对NoSQL 数据库。在Redis中有五种常用数据类型和几种特殊数据类型,每种类型适用于不同的应用场景。

一、字符串(String)

定义:最基本的数据类型,能存储任何形式的字符串,包括文本、数字、二进制数据等,最大存储长度为 512MB

应用场景

常用于缓存,比如把网页内容、查询结果暂存起来,加速后续访问;
redis分布式锁使用SETNX实现;
计数器功能也常用字符串,通过INCR、DECR 这类自增自减命令来统计页面访问量、点赞数等。

常用命令

SET key value                               # 设置指定键的值。
SETNX key value                             # 设置指定键的值,只有在指定的 key 不存在时,才会为 key 设置指定的值。
GET key                                     # 获取指定键的值。
INCR key / DECR key                         # 将键对应的整数值递增/递减。
INCRBY key increment / DECRBY key decrement # 按指定增量递增/递减。
APPEND key value                            # 在现有字符串后追加数据。
STRLEN key                                  # 获取字符串的长度。

二、哈希(Hash)

定义:由键值对组成的无序散列表,适合存储对象信息,其中字段(field)相当于对象的属性,值(value)是属性对应的内容。

应用场景

在存储、修改用户资料场景极为常用,像用户名、年龄、性别这些属性组成一个用户对象,存储在一个哈希结构里。

常用命令

HSET key field value                        # 设置哈希表中字段的值。
HGET key field                              # 获取哈希表中字段的值。
HMSET key field1 value1 [field2 value2 ...] # 一次性设置多个字段。
HGETALL key                                 # 获取哈希表中所有字段和值。
HDEL key field [field ...]                  # 删除一个或多个哈希表字段。
HINCRBY key field increment                 # 递增哈希表中字段的整数值。
HKEYS key / HVALS key                       # 获取所有字段名/字段值。
HEXISTS key field                           # 检查给定字段是否存在。

三、列表(List)

定义:按插入顺序排序的字符串列表,一个列表最多可以存储 2^32-1 个元素。
在 Redis 中,可以对列表两端插入(push)和弹出(pop),还可以获取指定范围的元素列表、获取指定索引下标的元素等。列表是一种比较灵活的数据结构,可以充当栈和队列的角色,在实际开发中有很多应用场景。

应用场景

实现消息队列是它的典型应用,生产者往列表一端添加消息,消费者从另一端依次取出;还能用于展示最新的文章列表、评论列表等,利用其顺序特性来排列数据。

常用命令

LPUSH key value [value ...] / RPUSH key value [value ...] # 从左/右端插入一个或多个元素。
LPOP key / RPOP key                                       # 移除并返回列表最左/右端的元素。
LRANGE key start stop                                     # 获取列表指定范围内的元素。
LLEN key                                                  # 获取列表长度。
LREM key count value                                      # 根据参数 count 的值移除列表中与参数 value 相等的元素。
BLPOP key [key ...] timeout / BRPOP key [key ...] timeout # 阻塞式弹出操作,等待直到有元素可用或超时。

四、集合(Set)

定义:无序且不重复的字符串集合,自动去重是它的显著特性。

应用场景

用于实现标签系统,给文章、图片打标签,每个标签存为集合元素;也可做社交关系中的共同好友、共同关注计算,利用集合的交集运算。

常用命令

SADD key member [member ...]                                      # 添加一个或多个成员到集合。
SMEMBERS key                                                      # 获取集合中的所有成员。
SISMEMBER key member                                              # 判断成员是否存在于集合。
SREM key member [member ...]                                      # 移除一个或多个成员。
SCARD key                                                         # 获取集合的成员数。
SINTER key [key ...] / SUNION key [key ...] / SDIFF key [key ...] # 计算多个集合的交集/并集/差集。
SRANDMEMBER key [count]                                           # 随机获取集合中的一个或多个成员。

五、有序集合(Sorted Set)

定义:与集合类似,但每个元素会关联一个分数(score),根据分数对元素排序。

应用场景

排行榜功能的首选,游戏排行榜、热门文章排名,依据点赞数、热度等分数指标来排列元素顺序。

常用命令

ZADD key score member [score member ...] # 添加一个或多个成员及其分数到有序集合。
ZRANGE key start stop [WITHSCORES]       # 获取指定排名范围内的成员(可选带分数)。
ZREVRANGE key start stop [WITHSCORES]    # 按分数降序获取成员。
ZCARD key                                # 获取有序集合的成员数。
ZCOUNT key min max                       # 统计分数在给定区间内的成员数量。
ZINCRBY key increment member             # 递增成员的分数。
ZRANK key member / ZREVRANK key member   # 获取成员的排名(升序/降序)。
ZREM key member [member ...]             # 移除一个或多个成员。
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX] # 计算多个有序集合的交集,并将结果存储在一个新的有序集合中。

六、流(Stream)

定义:是 Redis 5.0 引入的数据类型,用于处理日志、事件流等大规模的消息数据,以时间为序,支持消费者组,便于多消费者协同消费消息。

应用场景

系统监控中的事件记录与处理、分布式系统中的日志聚合,都能用流数据类型高效管理海量消息。

常用命令

XADD key ID field value [field value ...]                                     # 向流中添加一条记录。
XRANGE key start stop [COUNT count] / XREVRANGE key start stop [COUNT count]  # 读取流中的记录(正序/逆序)。
XREAD [COUNT count] [BLOCK milliseconds] STREAMS key [key ...] ID [ID ...]    # 阻塞式读取多条流中的记录。
XGROUP CREATE key group name $ MKSTREAM                                       # 创建消费者组。
XREADGROUP GROUP group consumer COUNT count STREAMS key [key ...] ID [ID ...] # 从消费者组中读取消息。
XACK key group ID [ID ...]                                                    # 确认消息已被处理。
XPENDING key group [IDLE min-idle-time] [START start END end COUNT count] [CONSUMER consumer-name]:查看未确认的消息。

七、地理空间(Geospatial)

定义:用来存储地理位置信息,支持计算两点间距离、获取指定范围内的地理位置等操作。

应用场景

在基于位置的服务中广泛使用,比如附近的人、查找附近的商家、计算行程距离。

常用命令

GEOADD key longitude latitude member [longitude latitude member ...] # 向指定键添加一个或多个地理位置。
GEODIST key member1 member2 [unit]                                   # 计算两个成员之间的距离。
GEOHASH key member [member ...]                                      # 获取一个或多个成员的 Geohash 表示。
GEOPOS key member [member ...]                                       # 获取一个或多个成员的经度和纬度。
GEORADIUS key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count] [ASC|DESC] [STORE|STOREDIST destination] # 查找给定坐标范围内符合条件的成员。

八、位图(Bitmap)

定义:通过位操作来存储和操作数据,把数据映射为二进制位,适用于海量数据的统计场景。

应用场景

比如统计网站每日活跃用户数,给每个用户分配一位,通过位运算快速得出活跃人数。

常用命令

SETBIT key offset value               # 对字符串指定位置的位进行设置。
GETBIT key offset                     # 获取字符串指定位置的位。
BITCOUNT key [start end]              # 统计字符串中被设置为 1 的位的数量。
BITPOS key bit [start] [end]          # 查找第一个被设置为指定值的位的位置。
BITOP operation destkey key [key ...] # 对多个字符串执行位运算(如 AND, OR, XOR, NOT),并将结果保存到目标键。

九、基数统计(HyperLogLog)

定义:用于做基数估算,能用极小的内存空间近似计算海量集合中的不重复元素数量。

应用场景

大型网站估算每日独立 IP 访问量,无需精确统计时,HyperLogLog 能高效给出近似结果。

常用命令

pfadd key member1 member2 .... # 添加一个或者多个元素
pfcount key                    # 统计key集合中基数的个数
pfmerge newKey key1 key2 ...   # 合并key1和key2中的元素,并且剔除其中重复的元素,产生新的集合newKey。

参考文章:
redis命令手册
Redis数据类型详解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com