
redis
SugarPPig
半躺主义者
展开
-
redis带密码批量删除key
想要批量删除,需要使用通配符,redis自身不支持,这个时候可以用 linux 管道执行含有通配符的命令。password 就是你自己设置的 redis 密码project:* 表示匹配所有以 project: 开头的keyredis-cli -a password keys "project:*" | xargs redis-cli -a password del...原创 2020-09-23 15:26:07 · 573 阅读 · 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 · 256 阅读 · 0 评论 -
缓存穿透处理
一、什么是缓存的穿透问题如图,一个正常的请求一般都会经过cache层再到storage层,如果cache层没有而在storage层查到,则将数据新增到cache层后返回,下次再有同样的请求则直接从cache层返回数据,无需再请求storage层;而如果在storage层也获取不到数据,则没有数据新增到cache里,下次再有同样的请求会继续到达storage层,这就是缓存穿透的定义。缓存...原创 2019-09-17 09:58:24 · 203 阅读 · 0 评论 -
【redis缓存】缓存预热
如果新闻数据量不大,在系统启动前直接灌入,如手工一次性批量插入缓存数据。写个 PHP 脚本(其他语言均可实现)、写个 shell 脚本来完成。 redis 批量插入数据(pipe mode),可以根据redis协议的格式生成出一个文件,然后批量导入。 set news101 newscontent EX 200拆分成redis格式就是(注意换行是\r\n):*5 // 按空格拆...原创 2019-09-18 16:59:38 · 594 阅读 · 0 评论 -
【redis缓存】keyspace notifications 实战场景
1、订单自动关闭订单创建后设置订单号 key,过期后自动修改数据库订单状态。2、用户注册送虚拟币用户注册成功后,设置用户 IDKey,过期时间可以根据用户分类(譬如地区)。这样可以分时间段执行赠送虚拟币,减轻并发压力。3、注销账户redis 里面存一个用户 ID 的 key,每当用户登录或发评论,更新过期时间。超过这个时间段后(譬如半年),自动注销账户。4、缓存失效后,自动“预热”结...原创 2019-09-19 16:05:08 · 206 阅读 · 0 评论 -
【redis缓存】HyperLogLog 类型的使用、统计每日注册用户数
需要 redis 2.8.9+。1、设计一个 key假设我们的颗粒度是天,用代码调用 pfadd,插入相应的值,譬如 user201903032、如果需要统计,合并出来一个 key 即可(这些 key 用程序生成)譬如要统计8月份,则 pfmerge user201903 user20190301 user20190302 user20190303 .... user201903313...原创 2019-09-19 17:46:37 · 237 阅读 · 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 · 745 阅读 · 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 ----- a01100...原创 2019-09-20 15:47:11 · 790 阅读 · 0 评论 -
纯净式安装 redis
1、本机目录结构安装包路径:~/package应用程序路径:~/soft2、在 ~/package 目录中,根据redis官方文档下载并编译 rediswget http://download.redis.io/releases/redis-5.0.5.tar.gztar xzf redis-5.0.5.tar.gzcd redis-5.0.5make默认的编译会把...原创 2019-10-11 01:15:01 · 170 阅读 · 0 评论