前面我们已经学习了redis中的String
数据类型:
http://blog.youkuaiyun.com/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 男