Redis的事务及乐观锁的应用

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

使用Rdis的bitmaps统计活跃用户

首先我们看一个场景:一个网站,需要统计一周内连续登陆的用户,以及一个月内登陆过的用户。 如果用传统的数据库如Mysql来实现的话,很难做到。但如果用Redis来做的话,就很简便。Redis的集合类型和Bitmap类型都可以很容易的做到。今天,我们主要来谈谈如何用Bitmaps来实现统计活跃用户的功能。 Bitmaps 在计算机系统中,最小的信息单位是字节,1个字节等于8位,每一位都只可能是0或1(…

使用Redis完成微信摇一摇功能

Redis提供了地理位置信息(GEO)功能,有了他就可以完成附近的人、摇一摇等功能。首先,介绍下GEO的相关API。 GEO API 添加地址位置信息 geoadd key longitude latitude member [longitude latitude member …] longitude :经度 latitude :纬度 member :成员 该命令可以一次添加一个或多…

MySQL性能优化

优化目的 加速读写 避免出现页面错误 增强数据库稳定性 优化方向 SQL语句优化 通过慢查询日志发现问题SQL 有几点需要注意: 1.查询次数多且查询时间较长的语句 2.IO大的SQL(注意:Rows examine项) 3.未命中索引的SQL(注意Rows examine与Rows send的对比) explain分析SQL explain分析SQL执行计划: explain SQL语句 mys…

MySQL数据备份与恢复

数据备份 备份所有数据库 mysqldump -u用户名 -p –all-databases > backup.sql 备份多个数据库 mysqldump -u username -p –databases dbname2 dbname2 > Backup.sql 备份单个数据库 mysqldump -u username -p dbname table1 ta…

MySQL5.7复制功能

MySQL复制是异步的,所以肯定有延迟 MySQL复制可以是整个实例进行复制,也可以对实例中的某个库或是某个表进行复制 Master端 –binlog-do-db 哪些库要进行binlog写操作 –binlog-ignore-db 哪些库不需要进行binlog写操作 Salve端 –replicate-do-db –replicate-ignore-…

MySQL的二进制日志

二进制日志包含了引起或可能引起数据库改变(如delete语句但没有匹配行)的事件信息,但绝不会包括select和show这样的查询语句。语句以"事件"的形式保存,所以包含了时间、事件开始和结束位置等信息。 二进制日志是以事件形式记录的,不是事务日志(但可能是基于事务来记录二进制日志),不代表它只记录innodb日志,myisam表也一样有二进制日志。 二进制日志只在事务提交的时…

MySQL日志

不管是哪个数据库产品,一定会有日志文件。在MariaDB/MySQL中,主要有5种日志文件: 1.错误日志(error log):记录mysql服务的启停时正确和错误的信息,还记录启动、停止、运行过程中的错误信息。 2.查询日志(general log):记录建立的客户端连接和执行的语句。 3.二进制日志(bin log):记录所有更改数据的语句,可用于数据复制。 4.慢查询日志(slow log…

MySQL权限与安全

MySQL 的权限系统主要用来对连接到数据库的用户进行权限的验证,以此来判断此用户是否属于合法的用户,如果是合法用户则赋予相应的数据库权限。 数据库的权限和数据库的安全是息息相关的,不当的权限设置可能会导致各种各样的安全隐患,操作系统的某些设置也会对 MySQL 的安全造成影响。 权限系统的工作原理 MySQL 权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证…

MySQL触发器

一、触发器简介 1、触发器简介 触发器是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,比数据库本身标准的功能有更精细和更复杂的数据控制能力。 2、触发器的优点 A、安全性 可以基于数据库的值使用户具有操作数据库的某种权利。可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据;可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10\%。 B…