标签:
这两天刚刚接触到redis,下面列出一些我的所学。
1、redis资源包的获取,从官网就可以获取到:http://redis.io/download。
关于linux平台的reids资源的获取,可以参照网站的说明;要说的是windows平台,reids是不支持windows平台的,是不过微软开发团队自己弄了一份,从下面网址:https://github.com/MSOpenTech/redis/releases,下载64位的zip版本就行。
2、解压后可以看到
双击redis-server.exe启动服务,然后双击redis-cli.exe,打开一个客户端,默认链接的是127.0.0.1:6379。
3、redis中的常用命令
redis中命令有很多,http://redis.io/commands官网搜索即可。我列举一些我经常使用的,如下
命令 | 描述 |
keys * | 列出所有的键 |
set key value | 添加一个键值对 |
get key | 得到键对应的值 |
keys ‘*id‘ | 列出所有包含id的键 |
命令 | 描述 |
hset user_main 1 zhangsan | 插入一个hash表,表名为user_main,key是1,值是zhangsan |
hkeys user_main | 列出user_main中所有的keys |
hget user_main 1 | 从user_main中 |
hdel user_main 1 | 删除命令 |
hexists user_main 1 | 判断user_main下的key为1的是否存在(不支持模糊查询) |
hlen user_main | 获取user_main下元素的长度 |
hvals user_main | 获取该表下所有的values值 |
4、关于reids的4种基本类型的语法我就不详细讲解了,很简单,以string和Hash类型来讲解一下,主要用的比较多。
我主要讲一下redis和php文件以及和mysql的交互使用
redis-server.exe必须开启,示例代码如下:
<?php //基本类型:string $redis = new Redis(); $redis->connect("127.0.0.1","6379"); $redis->set("say","hello"); echo $redis->get("say"); //基本类型:hash $redis = new Redis(); $redis->connect("127.0.0.1","6379"); $user_main = array( array(‘user_id‘=>‘1‘, ‘user_name‘=>‘zhangsan‘, ‘user_pass‘=>‘123‘, ‘user_sex‘=>‘男‘), array(‘user_id‘=>‘2‘, ‘user_name‘=>‘lisi‘, ‘user_pass‘=>‘123‘, ‘user_sex‘=>‘女‘), array(‘user_id‘=>‘3‘, ‘user_name‘=>‘wangwu‘, ‘user_pass‘=>‘123‘, ‘user_sex‘=>‘男‘), );//假设以上数据是从数据库中提取出来的 foreach ($user_main as $user){ $redis->hSet(‘user_main‘, $user[‘user_id‘], json_encode($user)); } var_export($redis->hGetAll(‘user_main‘)); echo ‘入redis库成功‘;
1)将mysql数据库中的数据读取到redis中,需要了解几个知识点:
a. 将数据读取到文件中:
windows平台,打开一个查询编辑器,例如navicat,新建查询,执行下面语句,即可将user_main中的数据输出到D盘下的user_main.txt文件中
select * from user_main limit 10 into outfile ‘D:/user_main.txt‘
linux平台,在进入mysql,执行以下语句,即可将数据取出到屏幕上,置于左侧用来作为输入。
mysql -u root -p -D mydb -e "这里写sql语句"
b. redis读取文件中的数据规范
hset user_main 4 zhangs 譬如这句话。
拆分成redis格式就是 (换行是\r\n)
*4 //按空格拆分有几段(几个命令)
$4 //代表下面的hset有几个字符长度
hset
$9
user_main//代表下面的user_main有几个字符长度
$1
4
$6
zhangs
c. linux中将mysql数据读取到redis中命令实例:
使用select语句拼接成上述的格式,给一个实例:
select concat(‘*4‘,‘\r\n‘,‘$4‘,‘\r\n‘,‘hset‘,‘\r\n‘,‘$6‘,‘\r\n‘,‘mytest‘,‘\r\n‘ ,‘$‘,LENGTH(id),‘\r\n‘,id,‘\r\n‘,‘$‘,LENGTH(name),‘\r\n‘,name,‘\r‘) from mytest limit 0,10
将该语句保存到mytest.sql文件中
执行:mysql -u root -p -D mydb --skip-column-names --raw < mytest.sql | ./redis-cli --pipe
其中,mydn是数据库名,--skip-column-names指跳过字段名,--raw指原生输出,./redis-cli指新建一个redis客户端,--pipe指使用redis的管道传输格式来批量将mytest.sql执行结果插入到redis中。
标签:
原文地址:http://www.cnblogs.com/yjdcoder/p/5920168.html