解压包安装Mysql5.7(windows系统)

之前自己只在linux系统上安装过MySQL,对于Windows系统,我之前都是使用集成工具——Wampserver。安装这个软件后,Apache、Mysql以及PHP就全部安装成功了。这次,只想单独安装Mysql,所以去官网上下载了5.7.32的安装包。 自己在安装Mysql时,出现了许多问题,vc库、MysqlServer启动不起来等等。到最后,放弃了使用安装包安装的方式,转而使用压缩包的方式…

使用Redis存放token

相信做过微信公众号开发的phper都知道,调取微信的接口都需要带上access_token的。access_token是公众号的全局唯一接口调用凭据。这个access_token每天获取的次数有限制,所以,我们需要自己保存。另外这个token也是有有效期的。所以,我们需要定时刷新,重新获取access_token. 使用何种方式来保存呢?如果使用mysql的话,一个表只来存放一条数据,感觉大材小用…

使用redis来做计数器完善投票系统

首先看应用场景:几年前,微信里许多投票系统。很多人都找好友或朋友圈找人拉票。当时,有一个比较大的乐园也做了这个投票活动,好像是超过一定票数就可以免费玩。我也被好友要求给他投票,一天好像可以投3票还是5票,具体的记不太清了。我当时进去该系统后,给朋友点了投票按钮,发现没有任何反应。我以为是我网络的问题,后来发现是程序的问题。我当时猜测,它应该是投票的人太多了,系统一时没抗住。 因为当时,我刚好在学r…

Redis字符串类型的几种应用

Redis的字符串数据类型,是最简单的一种数据类型,但它也是学好其他redis的数据类型的基础。下面介绍几种redis的应用。 限流 使用redis可以做到限流的作用。redis本身性能极高,可以用它来抵挡部分请求。 防御大流量 现在网站攻击日渐猖獗,静态的资源可以用cdn,但动态的程序如何防御。下面,展示一个redis来防御大量请求的解决方案。 基本思路是限制一个ip一定时间内请求数,比如一个i…

Reid存放日志及热门文章列表

使用Redis的列表数据类型可以实现多种数据结构,可以将它看做php中的索引数组。它可以实现栈、队列、消息队列的多种数据结构。今天,和大家介绍下,如何使用redis来保存系统日志及热门文章列表。 存放日志 大家知道,nginx日志默认不会自动切割,它会一直存放一个文件中,一直追加写入,需要我们自己做切割日志的操作。除了nginx外,很多地方都有用到日志。出了问题后,日志是我们是我们查找线索的主要途…

使用Redis完成抽奖功能

Redis集合简介 Redis的集合数据类型,功能非常强大。说到集合的话,你可能想到高中数学上的集合。其实他们本就是一个意思。Redis集合里面可以存放很多字符串(元素),Redis最多支持2的32次方减1个元素,但是集合里的元素都是唯一的,不会有重复。和数学里集合一样,Redis也支持交集,并集以及差集。 用它可以完成许多有意思的功能。最常见的就是标签功能了,可能A用户的标签有“动漫”、”运动“…

使用Redis完成排行榜系统

redis里有一种很特殊的数据类型——有序集合。之前我们学过的集合的概念是,集合里所有元素都是唯一的、无序的。但这里怎么出现了有序集合,他是怎么来实现有序的呢? 有序集合里元素还是唯一的,但会给每个元素设置一个socre(分值),通过这个分值来实现有序的。如下图所示: 有序集合API 下面介绍几个有序集合的API,实现排行榜功能需要知道这些API的用法。 zAdd 我们想设置一个球员2k能力值的有…

Redis慢查询

和Mysql一样,Redis也有慢查询记录。当命令的执行时间超过设定的值时,该命令就会记录到慢查询列表中。通过慢查询,我们可以改进我们的程序。防止redis阻塞。 配置 慢查询的配置参数有两个: slowlog-log-slower-than slowlog-max-len slowlog-log-slower-than用来设定一个阈值,单位为微妙。当值设置为小于0时,任何命令都不会记录;当值等于…

Redis的事务及乐观锁的应用

相信phper都或多或少知道事务,在一些场景中也会经常用到事务。比如购买了一个产品,需要向订单表插入一条数据,还要修改用户表的余额字段等等。这两个操作必须是要么一起成功,要么都失败,否则就会产生数据不一致的情况。 Redis中也支持事务的特性。虽然没有传统关系型数据库的事务功能那样强大,但它的使用非常简单。 事务 MULTI multi标志个一个事务的开始。随后的指令将在执行EXEC时作为一个原子…