Redis 使用记录(三)

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

内容简介: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 />';

参考资料: 菜鸟教程


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

查看所有标签

猜你喜欢:

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

深入浅出Struts 2

深入浅出Struts 2

Budi Kuniawan / 杨涛、王建桥、杨晓云 / 人民邮电出版社 / 2009-04 / 59.00元

本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听大量来之......一起来看看 《深入浅出Struts 2》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器