已安装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'); // 获取 hash表 中键名是 key1 的值 echo $redis->hGet('hash', 'key1') . PHP_EOL; // 获取 hash表的元素个数 echo $redis->hLen('hash') . PHP_EOL; // 获取 hash表 中所有的键 $keys = $redis->hKeys('hash'); var_dump($keys); // 获取 hash表 中所有的值 $vals = $redis->hVals('hash'); var_dump($vals); // 获取 hash表 中所有的键值对 // 不推荐使用这种方法获取全部数据,会导致服务器执行超时,推荐方法后边会详细介绍 // $all = $redis->hGetAll('hash'); // var_dump($all); // 判断 hash 表中是否存在键名是 key2 的元素 $bool = $redis->hExists('hash', 'key2'); echo $bool ? '存在' : '不存在' . PHP_EOL; // 批量添加元素 $redis->hMset('hash', ['key2' => 'val2', 'key3' => 'val3']); // 批量获取元素 $hashes = $redis->hMGet('hash', ['key1', 'key2', 'key3']); var_dump($hashes); // 删除 hash表 $redis->delete('hash');例如 数据库中有一张表 user 包含 id,name,age,sex 4个属性,并且有400w条数据,
id,name,age,sex1、1,张三,16,1
2、2,李四,22,1
3、3,王五,28,0
4、4,赵六,32,1
…
如果要整表缓存到 redis 中则使用 hash ,一条数据一个hash 一个hash 里则包含4个filed。
hset user_1 id 1 name 张三 age 16 sex 1
hset user_2 id 2 name 李四 age 16 sex 1
…
这样存储,如果用户的某个属性值改变,还可以单个修改。
例如 把张三的年龄改为30 则可以使用命令: hset user_1 age 30 https://www.kancloud.cn/chunice/think-redis/299736