Redis 查看内存使用情况  

Redis缓存虽然很高效,但是内存不是无限的,我们不能一直往里面去插入数据,所以隔一段时间就必须查看下内存的使用情况 通过info命令来查看,通过客户端连接到Redis执行info命令,可以看到很多数据 只查看内存info memory 结果显示 # Memory used_memory:43798640 //数据占用了多少内存(字节) used_memory_human:41.77M //数据占用了多少内存 used_memory_rss:44482560 //redis占用了多少内存 use

Posted:2018-10-26  By vilay

Mysql 8 数据库密码无法使用以及授权语句的变化  

使用mysql连接数据库的时候报错 PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2059] Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directo

Posted:2018-08-29  By vilay

Windows Mysql 8.0.11 zip安装  

Mysql 8.0.11 在windows下的安装 1. 下载zip安装包 Mysql zip包 2. 解压安装包到目录 例如解压到位置F:/mysql/ 3.生成配置文件 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=F:\mysql # 设置mysql数据库的数据的存放目录 datadir=F:\database # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据

Posted:2018-05-27  By vilay

Mysql 更新字段中的部分内容  

有时候数据库中的某个字段的值存储比较复杂,但是部分内容变更了,我们需要批量更新部分内容 update articles set content=replace(content,'http://www.test.com','http://www.example.com');

Posted:2018-05-20  By vilay

Mysql 从全备份文件中恢复某个数据库  

假设全备份文件名为all.sql,包含数据库bdelay_com,数据库包含表:articles 恢复某个数据库 找出备份文件中的建库语句,以及数据插入语句 shell下执行: sed -n '/^-- Current Database: `bdelay_com`/,/^-- Current Database: `/p' all.sql > bdelay.sql 然后登陆数据库导入就ok了。 恢复某张表 首先,找出建表语句 shell下执行 sed -e'/./{H;$!d;}' -e '

Posted:2018-05-02  By vilay

Mysql 大数据分页查询sql优化方法  

Mysql在分页查询的时候,一般我们都是这么查 select * from test limit start,limit; 随着数据量的增大,熟读会越来越慢 我们可以这么优化 SELECT * FROM product WHERE ID > =(select id from product limit 100000, 1) limit 20 或者 SELECT * FROM product a JOIN (select id from product limit 100000, 20) b

Posted:2017-09-15  By vilay

Mysql 在有索引和无索引的情况下select * 查询结果顺序  

在处理一个项目的bug的时候,发现问题是因为同一条sql数据查询出来的结果不一样. 后面搜索了下,发现原因是:mysql的select * from test查询结果跟表结构有关,有索引跟没索引结果会不一样. 测试示例: 表结构 CREATE TABLE `test` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `type` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), ) ENGINE=In

Posted:2017-09-15  By vilay

Mysql binlog-do-db与replicate-do-db含义  

在数据库的配置文件 /etc/my.cnf中有的版本会有两个配置binlog-do-db和replicate-do-db. binlog-do-db是数据库主服务器配置中,需要主从备份的数据库配置 示例 binlog-do-db=test1 binlog-do-db=test2 如果需要配置多个数据库重复配置选项 在复杂的主从配置架构中(例如:A->B->C),A是B的主服务器,B是C的主服务器 则用配置replicate-do-db replicate-do-db,在自身已经是从服

Posted:2017-03-23  By vilay

Mysql 主从备份配置  

Mysql数据库主从备份配置 主从备份条件 1. 两台Mysql服务器,Mysql版本一致(比如都是5.5),跨版本没试过不知道行不行 2. 同一个机房内网或者就是外网可通信就行 主服务器配置 编辑配置文件(先备份) cp /etc/my.cnf /etc/my.cnfbak vi /etc/my.cnf 在[mysqld]下面修改配置 [mysqld] log-bin=mysql-bin server-id=1 //值自行设置,唯一即可 binlog-do-db=www //只备份www数据库

Posted:2017-03-19  By vilay

Centos 7.2 Mysql 安装  

首先下载文件,源文件可以从官方获取https://dev.mysql.com/downloads/repo/yum/ wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 添加源 rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装 yum install mysql-community-server 安装成功后,连接数据库测试下 mysql -u root

Posted:2017-03-17  By vilay

Linux下 Mysql 忘记root密码  

Centos下长时间没有使用root帐号密码,忘记了root密码。 一招高定 修改配置文件 vi /etc/my.cnf 在[mysqld]下面添加skip-grant-tables [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables //添加这行 重启mysql service mysqld restart 进入mysql mysql -u root -p 不输入密码就可以进入了。

Posted:2017-03-17  By vilay

Redis管理  

Redis 的安全设计是在“Redis 运行在可信的环境”的前提下做出的。在生产环境运行时不能允许外界直接连到Redis 服务器上,应该通过应用程序做中转,运行在可信的环境时保证Redis安全的最重要方法。 Redis默认配置会接受来自任何地址发送来的请求。也就是说运行在可供外网访问的服务器上的Redis,可以被外面直接访问,我们可以通过修改配置文件的bind参数来约束。 bind 127.0.0.1 我们默认使用的Redis都没有密码,直接就可以访问,我们也可以为它设置一个密码 require

Posted:2016-12-30  By vilay

Redis 持久化  

由于存储在Redis的数据都是存在内存中,所以重启Redis或者服务器,数据都会丢失。 但是Redis也提供了持久化功能。主要通过两种方式实现 1.RDB方式 RDB方式的持久化是通过快照完成的。当符合一定条件的时候,Redis会自动将内存中的所有数据生成一份副本并存储到硬盘上。这个过程就是快照。在下面几种情况会对数据进行快照。 1. 根据配置的规则进行自动快照 2. 用户执行save或bgsave命令 3. 执行flushall命令 4. 执行复制(replication) 1.1 根据配置规

Posted:2016-12-28  By vilay

Redis 过期时间  

在项目实际开发中经常遇到一些业务场景,有些数据具有时效性。 如果存在关系型数据库里面,需要新增一个字段存储时间,与当前时间进行比较是否有效。 Redis 可以通过expire命令,直接设置数据的时效性。 示例: 127.0.0.1:6379> set name vila OK 127.0.0.1:6379> get name "vila" 127.0.0.1:6379> expire name 15 (integer) 1 127.0.0.1:6379&gt

Posted:2016-12-26  By vilay

Redis 事务  

Redis 事务语句 127.0.0.1:6379> multi OK 127.0.0.1:6379> set te 1 QUEUED 127.0.0.1:6379> set te 2 QUEUED 127.0.0.1:6379> exec 1) OK 2) OK 127.0.0.1:6379> multi 申明一个事务的开始,然后后面的语句,返回QUEUED告诉我们语句进入了队列,但是并没有执行。 exec 告诉Redis服务器,进入队列的语句按照进入队列的顺序依

Posted:2016-12-26  By vilay