Redis 使用记录(三)

栏目: 数据库 · 发布时间: 5年前

内容简介:Hash 是一个 String 类型的 field 和value 的映射表。每个 Hash 可以存储 2例如一个用户的姓名、生日等数据,如果使用 kye-value 存储,就要转换成字符串形式(json 等),存储和修改都会很麻烦,但是 Hash 可以很方便的实现。由于Hash结构会在单个Hash元素在不足一定数量时进行压缩存储,所以可以大量节约内存。

Hash(哈希)

Hash 是一个 String 类型的 field 和value 的映射表。每个 Hash 可以存储 2 32 - 1 键值对 (40多亿)。

应用场景

Hash 适合存储结构化的数据

例如一个用户的姓名、生日等数据,如果使用 kye-value 存储,就要转换成字符串形式(json 等),存储和修改都会很麻烦,但是 Hash 可以很方便的实现。

Hash 可以节省内存

由于Hash结构会在单个Hash元素在不足一定数量时进行压缩存储,所以可以大量节约内存。

可以参考 Redis 利用Hash存储节约内存 这篇文章。

实例

<?php
include 'redis.php';// 前文中连接  Redis  的方法

$redis = getRedis();

$userId = 1;
$userName = 'kobe';
$userNumber = 24;
$userAge = 39;
$redisKey = 'user_info_' . $userId;

$redis->hSet($redisKey, 'name', $userName);// 设置key中的field值为value
echo $redis->hGet($redisKey, 'name') . '<br />';// 获取key中field的值 kobe
$redis->hSetNx($redisKey, 'name', 'Gasol');// field不存在时,才能设置
echo $redis->hGet($redisKey, 'name') . '<br />';// 获取key中field的值 kobe
$flag = $redis->hExists($redisKey, 'name');// key中field是否存在
print_r($flag);// 1
echo '<br />';
$redis->hSet($redisKey, 'number', $userNumber);
$redis->hDel($redisKey, 'number');// 删除key中field
echo $redis->hGet($redisKey, 'number');// 无数据
$redis->hMset($redisKey, array('age' => $userAge, 'team' => $userTeam));// 批量存储多个field和value
print_r($redis->hMGet($redisKey, array('age', 'team')));// 批量获取多个field的值 Array ( [age] => 39 [team] => 湖人队 )
echo '<br />';
echo $redis->hLen($redisKey) . '<br />';// 获取key中有多少field 3
$redis->hSet($redisKey, 'score', 2);// 设置value为数值
echo $redis->hGet($redisKey, 'score') . '<br />';// 2
$redis->hIncrBy($redisKey, 'score', 3);// 为数值增量
echo $redis->hGet($redisKey, 'score') . '<br />';// 5
print_r($redis->hGetAll($redisKey));// 获取key中的所有field和value Array ( [name] => kobe [age] => 39 [team] => 湖人队 [score] => 5 )
echo '<br />';
print_r($redis->hKeys($redisKey));// 获取key中的所有field Array ( [0] => name [1] => age [2] => team [3] => score )
echo '<br />';
print_r($redis->hVals($redisKey));// 获取key中的所有value Array ( [0] => kobe [1] => 39 [2] => 湖人队 [3] => 5 )
echo '<br />';

参考资料: 菜鸟教程


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Algorithm Design Manual

The Algorithm Design Manual

Steven S Skiena / Springer / 2011-11-14 / GBP 55.07

....The most comprehensive guide to designing practical and efficient algorithms.... Written by a well-known algorithms researcher who received the IEEE Computer Science and Engineering Teaching Aw......一起来看看 《The Algorithm Design Manual》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具