Хэш (Хэш)
Хэш-это таблица сопоставления поля и значения строкового типа. Каждый хэш может хранить 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 '
';
Справочный материал: Курс для начинающих птиц.