
redis
SugarPPig
国企中年计算机爱好者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
redis带密码批量删除key
想要批量删除,需要使用通配符,redis自身不支持,这个时候可以用 linux 管道执行含有通配符的命令。 password 就是你自己设置的 redis 密码 project:* 表示匹配所有以 project: 开头的key redis-cli -a password keys "project:*" | xargs redis-cli -a password del ...原创 2020-09-23 15:26:07 · 604 阅读 · 0 评论 -
docker redis 常用配置
1、redis.conf 获取 docker pull 下来的 redis:latest镜像,默认是没有 redis.conf 配置的,配置文件可以从redis.conf拿到,虽然我的 redis 版本为6.0,但用6.0的配置文件容器启动时会出各种问题,推荐使用这里5.0的配置文件 2、docker 生成 redis 容器 docker run -d -p 6379:6379 -v /tmp/redis/redis.conf:/etc/redis/redis.conf --name myre...原创 2020-09-07 18:26:19 · 267 阅读 · 0 评论 -
缓存穿透处理
一、什么是缓存的穿透问题 如图,一个正常的请求一般都会经过cache层再到storage层,如果cache层没有而在storage层查到,则将数据新增到cache层后返回,下次再有同样的请求则直接从cache层返回数据,无需再请求storage层;而如果在storage层也获取不到数据,则没有数据新增到cache里,下次再有同样的请求会继续到达storage层,这就是缓存穿透的定义。 缓存...原创 2019-09-17 09:58:24 · 212 阅读 · 0 评论 -
【redis缓存】缓存预热
如果新闻数据量不大,在系统启动前直接灌入,如手工一次性批量插入缓存数据。 写个 PHP 脚本(其他语言均可实现)、写个 shell 脚本来完成。 redis 批量插入数据(pipe mode),可以根据redis协议的格式生成出一个文件,然后批量导入。 set news101 newscontent EX 200 拆分成redis格式就是(注意换行是\r\n): *5 // 按空格拆...原创 2019-09-18 16:59:38 · 606 阅读 · 0 评论 -
【redis缓存】keyspace notifications 实战场景
1、订单自动关闭 订单创建后设置订单号 key,过期后自动修改数据库订单状态。 2、用户注册送虚拟币 用户注册成功后,设置用户 IDKey,过期时间可以根据用户分类(譬如地区)。这样可以分时间段执行赠送虚拟币,减轻并发压力。 3、注销账户 redis 里面存一个用户 ID 的 key,每当用户登录或发评论,更新过期时间。超过这个时间段后(譬如半年),自动注销账户。 4、缓存失效后,自动“预热” 结...原创 2019-09-19 16:05:08 · 218 阅读 · 0 评论 -
【redis缓存】HyperLogLog 类型的使用、统计每日注册用户数
需要 redis 2.8.9+。 1、设计一个 key 假设我们的颗粒度是天,用代码调用 pfadd,插入相应的值,譬如 user20190303 2、如果需要统计,合并出来一个 key 即可(这些 key 用程序生成) 譬如要统计8月份,则 pfmerge user201903 user20190301 user20190302 user20190303 .... user20190331 3...原创 2019-09-19 17:46:37 · 250 阅读 · 0 评论 -
【redis缓存】锁的应用 - 利用事务防止误删锁、防止库存变负数
redis2.6+ 以下示例代码有部分封装,关注原理即可: <?php $resObj = new stdClass(); header("content-type:application/json"); if(!isset($_POST['id'])) exit("no"); $prod_id = intval($_POST['id']); $proKey = "prod".$pr...原创 2019-09-20 11:56:07 · 755 阅读 · 0 评论 -
【redis缓存】Bitmap类型实现用户签到
一、原理介绍 #set test a 这个很好理解,把key是test的值设置为a 其中a的ascii值是97,97的二进制是1100001 [ PHP代码: echo decbin(ord('a')); ] 譬如b的ascii值是98,转成二进制是1100010。 对照下(凑满8位为一字节,因此不满前面填0,PHP可用str_pad函数进行处理) 01100001 ----- a 01100...原创 2019-09-20 15:47:11 · 807 阅读 · 0 评论 -
纯净式安装 redis
1、本机目录结构 安装包路径:~/package 应用程序路径:~/soft 2、在 ~/package 目录中,根据redis官方文档下载并编译 redis wget http://download.redis.io/releases/redis-5.0.5.tar.gz tar xzf redis-5.0.5.tar.gz cd redis-5.0.5 make 默认的编译会把...原创 2019-10-11 01:15:01 · 182 阅读 · 0 评论