首页 > 代码库 > 初识redis

初识redis

这两天刚刚接触到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值

 

其他命令
   flushall    清空redis的存储

4、关于reids的4种基本类型的语法我就不详细讲解了,很简单,以string和Hash类型来讲解一下,主要用的比较多。

我主要讲一下redis和php文件以及和mysql的交互使用

  • php文件夹中使用redis

   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库成功‘;
  • redis和mysql的交互

   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中。

 

初识redis