Рубрики
Uncategorized

Записи об использовании Redis (III)

Автор оригинала: David Wong.

Хэш (Хэш)

Хэш-это таблица сопоставления поля и значения строкового типа. Каждый хэш может хранить 2 32 – 1 пара ключ-значение (более 4 миллиардов).

Сценарий применения

Хэш подходит для хранения структурированных данных

Например, имя пользователя, день рождения и другие данные, если вы используете хранилище значений ключей, будут преобразованы в строку из (json и т. Д.), Хранение и модификация будут очень хлопотными, но хэш можно легко реализовать.

Хэш экономит память

Поскольку хэш-структура может сжимать и хранить один хэш-элемент менее чем за определенное число, она может сэкономить много памяти.

Обратитесь к статье Redis использует хэш-хранилище для экономии памяти.

Пример

php
Include'redis.php'; // The method of connecting Redis in the previous article

$redis = getRedis();

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

$redis - > hSet ($redisKey,'name', $userName); //Set the field value in key to value
Echo $redis - > hGet ($redisKey,'name').'< br />'; // Get the value of field in key Kobe
$redis - > hSetNx ($redisKey,'name','Gasol'); // field does not exist before setting
Echo $redis - > hGet ($redisKey,'name').'< br />'; // Get the value of field in key Kobe
$flag = $redis - > hExists ($redisKey,'name'); whether field exists in // key
print_r($flag);// 1
echo '
'; $redis->hSet($redisKey, 'number', $userNumber); $redis - > hDel ($redisKey,'number'); //Delete field in key Echo $redis - > hGet ($redisKey,'number'); // No data $redis - > hMset ($redisKey, array ('age'=> $userAge,'team'=> $userTeam); //bulk storage of multiple fields and values Print_r ($redis - > hMGet ($redis Key, array ('age','team')); // Bulk get the value of multiple fields Array ([age]=> 39 [team]=> Lakers) echo '
'; Echo $redis - > hLen ($redisKey).'< br />'; // How many fields are there in the key $redis - > hSet ($redisKey,'score', 2); /// Set value to value echo $redis->hGet($redisKey, 'score') . '
';// 2 $redis - > hIncrBy ($redisKey,'score', 3); // is a numerical increment echo $redis->hGet($redisKey, 'score') . '
';// 5 Print_r ($redis - > hGetAll ($redisKey); // Get all fields and value Array in key ([name]=> Kobe [age]=> 39 [team]=> Lakers [score]=> 5) echo '
'; Print_r ($redis - > hKeys ($redisKey); // Get all field Array ([0]=> name [1]=> age [2]=> team [3]=> score) in key echo '
'; Print_r ($redis - > hVals ($redisKey); // Get all the value Array ([0]=> Kobe [1]=> 39 [2]=> Lakers [3]=> 5) in the key. echo '
';

Справочный материал: Курс для начинающих птиц.