
MySQL & Redis
MySQL & Redis
Jason Ho
分享技术,深度学习,社区中活跃的一份子
展开
-
解决:MySQL server has gone away
max_allowed_packet=16000Mwait_timeout=2880000interactive_timeout=2880000原创 2022-05-04 19:34:09 · 1154 阅读 · 0 评论 -
linux中安装redis 及 开机启动及安装php-redis扩展
redis 安装#下载压缩包wget http://download.redis.io/releases/redis-4.0.1.tar.gz#解压tar -zxvf redis-4.0.1.tar.gz#进入解压目录并编译Rediscd redis-4.0.1#进行编译makecd src#安装Redismake install PREFIX=/usr/local/rediscp -r redis.conf /usr/local/redis/bin/vim redis.conf原创 2020-09-15 15:15:57 · 184 阅读 · 0 评论 -
php-redis 哈希玩法 hash
已安装php-redis扩展的情况下操作:<?php$redis = new \Redis();$redis->connect('127.0.0.1', 6379);// Redis 没设置密码则不需要这行代码// $redis->auth('123456');// 创建 hash 表// 向名字叫 'hash' 的 hash表 中添加元素 ['key1' => 'val1']$redis->hSet('hash', 'key1', 'val1');//原创 2020-10-20 15:59:53 · 315 阅读 · 0 评论 -
Redis队列操作方式list
首先我们看下队列在RedisDesktopManager 中保存的方式:首先存储队列: (new Redis())->rPush('Tracking_num', $s); 以上从右侧存储数值从左侧取出并删除一个$redis = new Redis();$track_num = $redis->lPop('Tracking_num');每次执行一次就会删除一个队列里面的值,同时能保证先进先出。然后我们用删除里面的这个值去操作数据库。这个有点类似数组的array_shift.原创 2021-03-04 10:31:28 · 813 阅读 · 1 评论 -
解决:Module compiled with module API=20100525 PHP compiled with module API=20131226
PHP扩展与PHP版本不一致:解决:进入php.ini (find / -name php.ini)vi /usr/local/php/etc/php.ini把 ;extension_dir ="./";修改为extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/然后在/etc/php.ini 中增加一条:extension=imagick.so最后执行重启php :/etc/init.d原创 2020-08-29 14:01:32 · 1589 阅读 · 0 评论 -
解决:Failed to AUTH connection
redis 密码没有填写或者错误原创 2020-10-14 18:15:30 · 2271 阅读 · 0 评论 -
解决:tp5 中redis使用 hmget 报错502
使用hGetAll 方法替代。例如:$redis->hGetAll('hash')原创 2020-10-20 16:31:44 · 624 阅读 · 1 评论 -
PHP redis 切换数据库
redis 数据库db0-db15默认情况下,redis会生成0-15号共16个db,以供不同情境使用的需要不同的数据库下,相同的key各自独立<?php/** * Redis 操作类 * 可以使用redis的所有数据类型,而tp5仅可使用string类型+ * 字符串(String) 哈希(Hash) 列表(List) 集合(Set) 有序集合(sorted set) * Created by PhpStorm. * User: Administrator * Date:原创 2021-03-25 15:01:09 · 1903 阅读 · 0 评论 -
Redis 操作类
<?php/** * Redis 操作类 * 可以使用redis的所有数据类型,而tp5仅可使用string类型+ * 字符串(String) 哈希(Hash) 列表(List) 集合(Set) 有序集合(sorted set) * Created by PhpStorm. * User: Administrator * Date: 2020/10/21 * Time: 10:45 */namespace app\common;use think\Config;cl原创 2020-11-12 18:07:11 · 222 阅读 · 0 评论 -
windows下redis的两种启动方式及其他操作
第一种简单粗暴前台开启方式:进入redis目录点击下面的程序(可创建桌面快捷键):(或使用命名行的方式:进入redis目录,运行cmd:redis-server redis.windows.conf)出现如下图即代表redis启动成功(缺陷:需要永远开启该cmd页面,关闭即代表服务停止):第二种添加后台自动运行redis服务功能(开机自运行,不需要每次都像第一次那样去点击一下)进入...原创 2019-09-17 18:01:09 · 2247 阅读 · 0 评论 -
PHP redis 哈希的操作方法
redis 哈希特别适合于存储数组和对象的数据格式,他是一条一条的格式来存储。$redis = new Redis();$redis->select(1);$redis->hSet('hash', $export_record_id, json_encode($params));#存储$params = $redis->hGet('hash', $export_record_id);#取出$redis->hDel('hash',$export_record_id);#删除原创 2021-04-15 15:09:49 · 686 阅读 · 0 评论 -
安装redis扩展报错:undefined symbol: zval_used_for_init
redis扩展太老旧了。需要重新安装新的版本。以下是匹配php7.2版本的redis扩展:下载扩展源码包,直接用wgetwget https://github.com/edtechd/phpredis/archive/php7.zip解压php7.zipunzip php7.zip原创 2020-09-24 19:35:54 · 1413 阅读 · 0 评论 -
windows安装redis服务及 php-redis扩展
首先安装redis服务:https://github.com/tporadowski/redis/releases下载后解压缩后打开:安装php -redis 扩展:http://pecl.php.net/package/redis/5.3.1/windows根据phpinfo ()中提供的信息下载即可。NTS是非安全版,X64是64位操作系统下载解压后把放到php 目录 的ext下。在php.ini的最后一行添加:extension=redis重启php服务。...原创 2020-10-22 16:47:56 · 125 阅读 · 0 评论 -
redis、memcache、MongoDB比较
MemcachedMemcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key、value的字节大小以及服务器硬件性能,日常环境中QPS高峰大约在4-6w左右)。适用于最大程度扛量。支持直接配置为session handle。Memcached的局限性:只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。...原创 2019-11-13 15:33:46 · 133 阅读 · 0 评论 -
redis命令行登陆
redis-cli.exe -h127.0.0.1 -p6379原创 2019-10-11 16:15:24 · 3176 阅读 · 0 评论 -
PHP 关于Redis 有序集合zset和无序集合set 使用
有序集合的展示方式:例如:// 添加50个成员$redis = new Redis();$redis->select(1); for ($i = 0; $i < 50; $i++) { $redis->zAdd('zsets', $i, rand(1, 99999)); }从上边可以看出有序集合有一个分数,他与值一一对应。所以有序集合特别适合排行榜或分数统计类的功能$range = $redis->zRange('zsets', 0, 9, tru原创 2021-04-25 15:03:21 · 1153 阅读 · 0 评论 -
Redis可视化工具Redis Desktop Manager
下载地址:https://redisdesktop.com/下载安装后然后进入软件:点击+号 连接redis服务器。然后增加一些键值对:原创 2019-09-18 09:15:49 · 253 阅读 · 0 评论 -
查询数据库中每个表的各自行数和大小
SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH / 1024 / 1024 "DATA_LENGTH", CREATE_TIME, TABLE_COLLATIONFROM INFORMATION_SCHEMA. TABLESWHERE TABLE_SCHEMA = '库名'ORDER BY DATA_LENGTH DESC原创 2022-02-28 15:53:13 · 946 阅读 · 0 评论 -
解决数据库报错:SQLSTATE[HY000] [2002] Connection timed out
出现此问题的原因是:数据库链接有问题,比如链接的ip不对、账号密码错误。原创 2020-10-09 15:43:50 · 7753 阅读 · 0 评论 -
解决数据库链接失败
进入数据库配置文件:my.ini在mysqld下面增加skip-grant-tables原创 2020-10-08 16:51:29 · 320 阅读 · 0 评论 -
MySQL 存储表情包的设置问题
MySQL配置文件:/etc/my.cnfmy.cnf一般在etc/my.cnf位置。找到后请在以下三部分里添加如下内容:[client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf原创 2020-09-08 20:07:36 · 168 阅读 · 0 评论 -
Linux上定时备份数据库MySQL
添加一个文件:vi /usr/njmlmysql/njmlsql.sh写入:#!/bin/sh# Database infoDB_USER="root"DB_PASS="********"DB_HOST="119.29.164.212"DB_NAME="niujinmali"# Others vars#数据库bin BIN_DIR="/usr/bin" #the mysql bin path#将备份的sql文件写入以下目录BCK_DIR="/home/原创 2020-09-01 18:41:10 · 164 阅读 · 0 评论 -
在mysql中某个字段前或后添加字符
使用concat 方法即可。UPDATE optional_productSET cate_path = concat('|',cate_path,'|')效果:原创 2020-09-01 16:57:19 · 4753 阅读 · 0 评论 -
解决:can‘t rmdir ,errno 39
出现此问题的原因是 数据库下面的表还存在,查找该文件夹:find / -name njml进入这个文件下:在../直接执行: rm -rf njml/数据库njml就被删除了。原创 2020-08-04 11:11:54 · 2886 阅读 · 0 评论 -
解决数据导入报错: - Got a packet bigger than ‘max_allowed_packet‘ bytes
有一个数据包大于“允许的最大数据包”字节进入数据库配置文件:vi /etc/my.cnf修改max_allowed_packet ,默认1M 太小了。原创 2020-08-04 10:29:19 · 616 阅读 · 0 评论 -
MySQL从一个数据库导入到另一个数据库
使用navicat 工具全选 所有表ctrl + C 复制所有表粘贴 ctrl+V到另一个数据库这种方式可以避免中途转出转入的时候报错。原创 2020-08-01 16:00:36 · 3223 阅读 · 0 评论 -
mysql重置密码并设置远程访问
第一步:进入配置文件vim /etc/my.cnf在[mysqld]后面任意一行添加skip-grant-tables重启MySQL:/etc/init.d/mysql restart然后mysql -uroot -p直接回车就好,进入了mysql执行:use mysql;update user set password=password("你的新密码") where user="root";再次执行:(立即生效)flush privileges;再次执行:(远程访原创 2020-08-01 15:45:04 · 184 阅读 · 0 评论 -
多个字段进行搜索的条件写法
where(['concat(name,id)'=>['like','%'.$keyword.'%']])以上语句是当你输入选手名称或者编号时都可以搜到原创 2020-06-30 09:01:53 · 587 阅读 · 0 评论 -
Mysql中批量替换某个字段的值:replace
例如我们有一个表:现在要将该表中的所有goods_pic字段的值替换goods/为空,即去掉goods/。那么我们怎么来做呢?update mxd_goods set goods_pic= replace(goods_pic, 'goods/', '');意思是去掉了goods/。一定要加where id =数字 ,否则将是全表修改哦。...原创 2020-06-03 10:00:31 · 1343 阅读 · 0 评论 -
MySQL分库分表原理
详情:https://www.jianshu.com/p/7aec260ca1a2原创 2019-11-13 15:59:36 · 192 阅读 · 0 评论 -
MySQL读写分离简述
读写分离就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份的同时也实现了数据库性能的优化,以及提升了服务器安全。读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。...原创 2019-11-13 15:20:51 · 205 阅读 · 0 评论 -
MySQL截断表:truncate table 表名
使用命令:truncate table sys_system_settings;其中sys_system_settings为表名。截断表可以用于删除表中的所有数据,并自动恢复主键id从新计数。另外可在Navicat中手动操作:在表上点右键->截断表...原创 2019-11-05 09:37:46 · 3051 阅读 · 0 评论 -
子查询与where子句的区别
1、子查询是把内层查询的结果当作外层查询的参数。例如:select goods_id,goods_name from goods where goods_id = (select max(goods_id) from goods);2、WHERE 子句是用于提取那些满足指定条件的记录,说的简单点就是运算符操作例如:SELECT * FROM Websites WHERE id=1;...原创 2019-11-04 10:43:08 · 820 阅读 · 0 评论 -
MySQL优化详述之二:索引优化
索引优化1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id fro...原创 2019-10-31 16:27:54 · 157 阅读 · 0 评论 -
MySQL优化详述之一:SQL语句性能优化
一,SQL语句性能优化1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。3,应尽量避免在 where 子句中使用!=或<>操作符, MySQL只有...原创 2019-10-31 16:25:48 · 153 阅读 · 0 评论 -
MySQL事务和索引
事务四大特性原子性:不可分割的操作单元,事务中所有操作,要么全部成功;要么撤回到执行事务之前的状态一致性:如果在执行事务之前数据库是一致的,那么在执行事务之后数据库也还是一致的;隔离性:事务操作之间彼此独立和透明互不影响。事务独立运行。这通常使用锁来实现。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。事务的100%隔离,需要牺牲速度。持久性:事务一旦提交,其结果就是永久的。即便...原创 2019-10-31 11:40:37 · 526 阅读 · 0 评论 -
快速测试MySQL语句的执行时间
1.首先cmd 登陆mysql:mysql -uroot -proot2.找到你的表show databases;use 你的数据库名随便执行一条查询,因为后面有用,需要看这一句的执行效率如何如:SELECT * FROM sys_software_upgrade;3.然后执行show profiles;如果没有出现下图则执行show variables like “pr...原创 2019-10-31 10:48:13 · 1258 阅读 · 0 评论 -
MySQL对各种索引(index)进行新建,删除,修改,查看的操作
ALTER 方式创建1.PRIMARY KEY(主键索引)mysql>ALTER TABLE table_name ADD PRIMARY KEY ( column )2.UNIQUE(唯一索引)mysql>ALTER TABLE table_name ADD UNIQUE (column )3.INDEX(普通索引)mysql>ALTER ...原创 2019-10-31 09:44:33 · 2574 阅读 · 0 评论 -
在phpstorm中连接数据库
1、首先选择最右上角的数据库图标2、打开后依次按123步骤操作。3、打开后如果提示数据库驱动未安装,那么就点Download下载安装即可。4、完成后按下面标示的8个步骤填写基本信息。前面6步大家都应该知道填写什么了。注意第7步,后面的 地址上加上这一句:(注意前面有个问号?,没加会报错,会提示:Could not create connection to database ser...原创 2019-10-25 11:33:16 · 2089 阅读 · 1 评论 -
Linux下修改mysql和sshd的默认端口
修改为非默认端口的好处就是可以避免在自动端口扫描的状态下暴露出你的服务。攻击者会尝试根据端口猜背后的程序是什么。比如对于端口22,攻击者会猜这是个SSH,然后会尝试弱口令等方式来攻击。如果你把SSH的端口随便改成一个比如4328,那么攻击者就得花更多的力气才能做这个猜测。如果攻击者不是针对你的话,也就不会废这个功夫猜了,毕竟不设防的机器多的是,何必死磕你的。其他服务的端口也可以类似处理,比如M...原创 2019-09-25 12:19:34 · 458 阅读 · 0 评论