【Redis】性能优化及bigkey搜索与删除
1. 客户端优化 Pipeline 批量操作多条命令 连接池的应用 2. 设置合理的淘汰机制 设置合理的内存大小:内存太小会频繁触发淘汰算法,内存太大可能会影响其他性能 设置合理的过期时间 选择合适的淘汰策略 3. key与value优化 1. key设计 可读性和可管理性,以业务名(或数据库名)为前缀(防止key冲突),用冒号分隔,比如业务名:表…
【Redis】功能应用(六)分布式缓存
1. 缓存的概念 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。 缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数 据源的数据。 比如我们通常是直接查询MysQL数据库,那在高并发情况下,大量查询MysQL数据库会导致数据库…
MySQL配置参数说明及应用场景
wait_timeout 一个用户成功建立连接后,如果你没有后续的动作,这个连接就处于空闲状态,show processlist 的结果,Command 列显示为“Sleep”的这一行,就表示现在系统里面有一个空闲连接。客户端如果太长时间没动静,连接器就会自动将它断开。这个时间是由参数 wait_timeout 控制,默认值28800秒[8小时]。…
【Redis】功能应用(五)附近的人
需求分析 根据当前用户的lon(经),lat(纬)度,实现查找附近指定范围内(默认1000m)的用户 设计思路 解决基于地理位置的搜索,很多数据库品牌都支持:MySQL、 MongoDB、 Redis等都能支持地理位置的存储。 当用户登录应用时,或者保持用户登录后用户在使用应用时,客户端是可以时刻获取用户位置信息的(前提是用户要开启位置获取的权限)…
【Redis】功能应用(四)用户签到、用户积分功能及积分排行榜
用户签到功能 1. 需求分析 在很多互联网应用中,我们会存在签到送积分、签到领取奖励等这样的需求,比如: 签到1天送10积分,连续签到2天送20积分,3天送0积分,4天以上均送50积分等。 如果连续签到中断,则重置计数,每月初重置计数。 显示用户某个月的签到次数。 在日历控件上展示用户每月签到情况,可以切换年月显示。 2. 设计思路 2.1 数据库…
【Redis】功能应用(三)好友功能及Feed流功能
好友功能 实现类似微博的关注即粉丝功能 关注/取关 /** * 关注/取关 * * @param int $loginDinerId 登录用户ID * @param int $followDinerId 关注的食客ID * @param int $isFollowed 是否关注 1=关注 0=取关 * @return JsonResponse * …
【Redis】功能应用(二)短信限流及秒杀场景
秒杀场景 秒杀场景的的两个难点: 解决并发下超卖问题 解决同一用户重复请求多次购买的问题 下面我们以抢购代金券的业务场景来看下怎么解决这两个问题。 添加抢购 /** * 添加需要抢购的代金券 * @param SeckillVoucherInput $seckillVoucher * SeckillVoucherInput属性: * public …
【Redis】功能应用(一)短信接口防刷验证
短信接口防刷验证 我们限制短信接口一分钟内只能请求一次,当天只能请求10次 其中 Cache 为laravel的Facades。将laravel的缓存驱动改为 redis // 防刷验证,一分钟内只能请求一次,当天只能请求10次 $lock = Cache::add(RedisKeyConstant::REGISTER_CAPTCHA_LOCK .…
MySQL-忘记root密码
1. 关闭mysqld [root@localhost ~]# systemctl stop mysqld 2. 使用--skip-grant-tables选项重启MySQL服务 [root@localhost ~]# find / -name mysqld /run/mysqld /usr/sbin/mysqld [root@localhost …
MySQL主库故障切换(一主多从)
大多数的互联网应用场景都是读多写少,因此你负责的业务,在发展过程中很可能先会遇到读性能的问题。而在数据库层解决读性能问题,就要涉及到接下来要讨论的架构:一主多从。