相信phper都或多或少知道事务,在一些场景中也会经常用到事务。比如购买了一个产品,需要向订单表插入一条数据,还要修改用户表的余额字段等等。这两个操作必须是要么一起成功,要么都失败,否则就会产生数据不一致的情况。 Redis中也支持事务的特性。虽然没有传统关系型数据库的事务功能那样强大,但它的使用非常简单。 事务 MULTI multi标志个一个事务的开始。随后的指令将在执行EXEC时作为一个原子…
首先我们看一个场景:一个网站,需要统计一周内连续登陆的用户,以及一个月内登陆过的用户。 如果用传统的数据库如Mysql来实现的话,很难做到。但如果用Redis来做的话,就很简便。Redis的集合类型和Bitmap类型都可以很容易的做到。今天,我们主要来谈谈如何用Bitmaps来实现统计活跃用户的功能。 Bitmaps 在计算机系统中,最小的信息单位是字节,1个字节等于8位,每一位都只可能是0或1(…
Redis提供了地理位置信息(GEO)功能,有了他就可以完成附近的人、摇一摇等功能。首先,介绍下GEO的相关API。 GEO API 添加地址位置信息 geoadd key longitude latitude member [longitude latitude member …] longitude :经度 latitude :纬度 member :成员 该命令可以一次添加一个或多…
数据备份 备份所有数据库 mysqldump -u用户名 -p –all-databases > backup.sql 备份多个数据库 mysqldump -u username -p –databases dbname2 dbname2 > Backup.sql 备份单个数据库 mysqldump -u username -p dbname table1 ta…
MySQL复制是异步的,所以肯定有延迟 MySQL复制可以是整个实例进行复制,也可以对实例中的某个库或是某个表进行复制 Master端 –binlog-do-db 哪些库要进行binlog写操作 –binlog-ignore-db 哪些库不需要进行binlog写操作 Salve端 –replicate-do-db –replicate-ignore-…
二进制日志包含了引起或可能引起数据库改变(如delete语句但没有匹配行)的事件信息,但绝不会包括select和show这样的查询语句。语句以"事件"的形式保存,所以包含了时间、事件开始和结束位置等信息。 二进制日志是以事件形式记录的,不是事务日志(但可能是基于事务来记录二进制日志),不代表它只记录innodb日志,myisam表也一样有二进制日志。 二进制日志只在事务提交的时…
MySQL 的权限系统主要用来对连接到数据库的用户进行权限的验证,以此来判断此用户是否属于合法的用户,如果是合法用户则赋予相应的数据库权限。 数据库的权限和数据库的安全是息息相关的,不当的权限设置可能会导致各种各样的安全隐患,操作系统的某些设置也会对 MySQL 的安全造成影响。 权限系统的工作原理 MySQL 权限系统通过下面两个阶段进行认证: (1)对连接的用户进行身份认证,合法的用户通过认证…