5种数据类型
Redis支持5种数据类型:字符串(string)、散列(hash)、列表(list)、集合(set)和zset(sortedset:有序集合)。简介:字符串是Redis最基本的数据类型。
分配、分配公式、计数器、限流。
哈希类型意味着V(值)本身是另一个键值对(K-V)。
。
Perfume Redislist 是一个简单的字符串列表,按插入顺序排序。
您可以将元素添加到列表的头部(左)或尾部(右)。
底层二维列表可以通过push和pop操作向列表的头部或尾部添加或删除元素,这样列表可以用作堆栈也可以用作行等待LPUSH+LPPOP = Stack LPUSH +RPOP = Queue 是一个无序的字符串集合。
不包含重复的元素 ⑤Rediszset是集合等字符串类型元素的集合,不允许有重复的成员。
然而,Sort可以通过向用户提供一个附加参数(分数)并按顺序插入来对成员进行排序,即自动排序。
Redissortedet的内部使用使用Ziplist或Jumper。
跳转表支持平均O(logn)复杂度节点搜索、最差O(N)复杂度,还可以通过顺序操作批量处理节点。
redis+nodejs实现限流的三种方式
1.基于SETNX操作的SETNX概述了使指定密钥过期的做法。2.基于REDIS的ZSET数据结构,在ZSET Array中进行查询。
3、基于Redis token trunk算法,输出速度大于输入速度,限流。
redis怎么进行限流?
固定窗口当前限制固定窗口当前限制使用固定的时间窗口设置,以在设定的时间内允许特定数量的请求,并拒绝请求。几分钟后,每分钟就会生成一个钥匙,并计数一分钟,当达到请求时,返回友好的信息。
此方法易于操作,但是相对机械,例如,如果流量已满,您将无法访问它,直到下一次。
滑动窗口中滑动窗口的当前限制可改善固定窗口中缺乏灵活性。
时间窗口动态变化,时间差和批准请求的数量不会改变。
请求通过ZSET数据结构保存,分数用于表示时间戳记,以计算指定时间间隔内的请求数。
在此方法中,您可以每n秒保证最大的m请求,但是ZSET数据结构会随着时间的推移而增加,并且操作相对简单。
提供了令牌桶电流的重新源,该解决方案实现了令牌桶的当前限制。
使用比例限制接口调用的数量,每秒生成X代币,然后将其放入存储桶中。
您需要在请求之前获得令牌。
如果令牌用完了,您将无法提出请求。
Redisson封装使实施当前限制,有效地控制资源访问并实现有效管理更加方便。