您的位置:首页 > 数据库 > Redis

mysql颠覆实战课程 - redis存储用户表信息

2017-04-12 16:53 495 查看
前面我们已经学习了redis中的
String
数据类型:

http://blog.csdn.net/github_26672553/article/details/69680548

现在我们将要学到redis的第二种数据类型:hash

hash
顾名思义,它也是一个key-value键值对。

使用命令:

hset 表名 字段key 字段value

hset user_main 1 zhangsan

代表插入一个hash表,表名为user_main。key是1,值时zhangsan。





<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);

// 获取
$result = $redis->hget("user_main","2");
var_export($result); //"lisi"

$result = $redis->hget("user_main","22"); // 没有22
var_export($result); //false


php调用redis

官网下载扩展地址:

http://pecl.php.net/package/redis

其他几个常用命令

请参考官方文档,不要去百度

https://redis.io/commands

hdel 表名 key (删除命令)

hexists 表名 key (判断该表下的key是否存在)

hlen 表名 (获取该表下元素的长度)

hvals 表名(获取该表下所有的values值)



怎么存储关系型表呢?

比如,除了id外,用户名也是重要的索引字段。

那么,key就是username,value其他字段联合搞成json字符串。

<?php
$redis = new Redis();
$redis->connect('127.0.0.1',6379);

// 准备数据
$data = array(
array('user_id'=>3,'user_name'=>'jack','user_pass'=>'123','user_sex'=>'男'),
array('user_id'=>4,'user_name'=>'zhangsan','user_pass'=>'456','user_sex'=>'女'),
array('user_id'=>5,'user_name'=>'lisi','user_pass'=>'789','user_sex'=>'男'),
);
// 假设以上数据是从数据库(mysql)获取的

foreach($data as $user){
$redis->hset("user_main",$user["user_name"],json_encode($user));
}
echo '入库成功';


另外一种方法

纵向存储

username 作为key

其他各个字段作为value

zhangsan:id 2

zhangsan:pass 123

zhangsan:sex 男
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: