-
v1
function v1() {
$amountLimit = 100;
// ...
}
查看全部 -
PHP function
查看全部 -
Linux Redis PHP Nginx
查看全部 -
setnx = set not exists
先计算,后判断
查看全部 -
并发请求,导致数据不一致问题
set 可能会出现覆盖
先判断,后计算,计算错误
查看全部 -
流程图 抽奖
微信抢红包,金额随机分配逻辑
查看全部 -
数量控制
商品抢购
抽奖
抢红包
查看全部 -
超时时间 30s
```sh
127.0.0.1:6379> expire test2 30
(integer) 1
127.0.0.1:6379> ttl test2
(integer) 23
127.0.0.1:6379> ttl test2
(integer) 21
127.0.0.1:6379> ttl test2
(integer) 17
127.0.0.1:6379> ttl test2
(integer) 14
127.0.0.1:6379> ttl test2
(integer) 12
127.0.0.1:6379> ttl test2
(integer) 8
127.0.0.1:6379> ttl test2
(integer) 6
127.0.0.1:6379> ttl test2
(integer) 3
127.0.0.1:6379> ttl test2
(integer) -2
127.0.0.1:6379> ttl test2
(integer) -2
127.0.0.1:6379> exists test2
(integer) 0
127.0.0.1:6379>
```
查看全部 -
setnx 判断是否存在,不存在才会set,防止错误的覆盖
```sh
127.0.0.1:6379> get test
"6"
127.0.0.1:6379> setnx test 2020
(integer) 0
127.0.0.1:6379> setnx test2 2020
(integer) 1
127.0.0.1:6379> get test
"6"
127.0.0.1:6379> get test2
"2020"
127.0.0.1:6379>
127.0.0.1:6379> set test2 77
OK
127.0.0.1:6379> get test2
"77"
```
查看全部 -
```sh
➜ ~ redis-cli
127.0.0.1:6379> exists test
(integer) 0
127.0.0.1:6379> set test 3
OK
127.0.0.1:6379> get test
"3"
127.0.0.1:6379> incr test
(integer) 4
127.0.0.1:6379> get test
"4"
(integer) 3
127.0.0.1:6379> incrby test 3
(integer) 7
127.0.0.1:6379> get test
"7"
127.0.0.1:6379> incrby test -1
(integer) 6
127.0.0.1:6379> get test
"6"
127.0.0.1:6379>
```
查看全部 -
redis 应用场景
频率限制, 计数器 key ip value time
数量控制
数量统计
查看全部 -
Memcache
查看全部 -
redis 数据类型 string hash list set zset 有序集合
查看全部 -
Redis big key
对象大小 小于100KB
list 元素个数小于 10 万个为什么redis 不适合存储大key对象
查看全部 -
缓存 数据库 消息队列
查看全部
举报