拥有Redis标签的文章

Redis实战分布式锁

背景在很多互联网产品应用中,有些场景需要加锁处理,比如:秒杀,全局递增ID,楼层生成等等。大部分的解决方案是基于DB实现的,Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系。其次Redis提供一些命令SETNX,GETSET,可以方便实现分布式锁机制。Redis命令介绍使用Redis实现分布式锁,有两个重要函数需要介绍SETNX命令(S
阅读全文

mysql处理高并发,防止库存超卖

其实mysql处理高并发,防止库存超卖的问题,在去年的时候,王总已经提过;但是很可惜,即使当时大家都听懂了,但是在现实开发中,还是没这方面的意识。今天就我的一些理解,整理一下这个问题,并希望以后这样的课程能多点。先来就库存超卖的问题作描述:一般电子商务网站都会遇到如团购、秒杀、特价之类的活动,而这样的活动有一个共同的特点就是访问量激增、上千甚至上万人抢购 一个商品。然而,作为活动商品,库存肯定是很
阅读全文

实例:Tag 标签

在社交网站中用户都可以为自己设置的兴趣标签,后台就可以给标记相同标签的人互推好友,或者向某一批相同标签的人发起活动。设置标签 public function setTags($user_id) {     $redis = new \Redis();     
阅读全文

实例:分布式锁

当程序的访问量大到一定程度之后我们通常会采用分布式架构,使用多台应用程序服务器来运行代码,之前文章我们已经介绍过在分布式架构下如何使用独立存储 SESSION。在高并发的情况下还有一种情况很常见,尤其是在多进程,多线程的情况下使用独立 Redis 服务器时,当某个时间缓存不存在,请求量又很大的时候,大量请求涌向数据库,导致数据库崩溃。这时我们可以使用分布式锁来解决问题。
阅读全文

实例:抽奖

实例:抽奖本文使用 Redis 的集合数据结构制作定期开奖,并不是即时开奖。形式类似微博转发抽奖。建立待抽奖名单待抽奖名单可以一次性建立,也可以对符合条件的及时创建待抽奖名单。本文采用一次性建立,和即时创建用法一致都是通过 sAdd 实现<?php $redis = new \Redis(); $redis->connect('127.0.0.
阅读全文

缓存踩过的坑,穿透的解决方案

今天讲的这个话题,我相信是众多工程师和团队的痛。从我刚开始工作,那时候构建本地缓存,到后续memcache, Redis的出现,到现在各种分布式集群的缓存,例如redis Cluster等产品的出现,缓存越来越发达和复杂了,缓存对我们的系统也越发重要,现在很难相信一个后端服务里没有缓存的存在。在这篇文章里,我会和大家分享一下过去踩到的缓存坑,然后试图给出一些解决方案,大家可以一起讨论,最终拿出更好
阅读全文

实例:限制访问次数

实例:限制访问次数上文我们演示了每分钟只允许访问一次,接下来我们演示一下共允许调用1000次,常见业务场景如快递信息调取接口,接口是付费的。比如100元可以查询1000次。共允许调用1000次 public function somthing($user_id) {     $redis = new&nb
阅读全文

实例:限时访问

实例:限时访问在接口开发工作中很常见的限时访问功能,每个用户每分钟只允许调用一次接口。或者论坛中,每个用户五分钟之内只能提交一次评论。本章我们就来实现一个简单的限时访问,每个用户每分钟只允许调用一次接口。在高并发的项目中,通常我们不会用业务层代码来处理限时访问,更常见的是用 Nginx + Lua + Redis 来实现限时访问。每分钟只允许调用一次接口public function&n
阅读全文

实例:文章列表+分页

实例:文章列表+分页因为PHP的数据结构比较少,所以从事PHP的人 redis的数据结构并不是很了解,本文用的文章分页用redis的例子进行实现。采用的redis结构为:哈希+有序集合<?php  $redis = new Redis;  $redis->connect('127.0.0.1',6379,0); &
阅读全文

实例:排行榜

实例:排行榜排行榜功能几乎存在于所有项目中,如按照发布时间倒序的新闻列表,按照考试成绩正序的成绩表,按照浏览量从大到小的话题。Redis 中列表和有序集合两种数据结构都非常适合用于排行榜系统中。本文采用使用有序集合来开发一个投票项目来演示排行榜。1.创建投票选项1.1 创建投票方法使用Request::instance()->post()接受数据保存到数据库public funct
阅读全文
首页 12 末页 共 20 条记录