redis 学习笔记3 PHP redis Hash(哈希)

php 连接redis

   $redis = new Redis();
   $redis->connect('127.0.0.1', 6379);
   echo "Connection to server successfully";
   //查看服务是否运行
   echo "Server is running: " . $redis->ping();

概念:

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。

Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

 

1. hash 表 键值对的创建 / 删除指定的键 / 删除多个键值 / 取出某个键值对应的值 / 取出hash表里的所有的键值对

   $redis->hset('tablename','key1','cc'); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $redis->hset('tablename','key2','dd'); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $redis->hset('tablename','key3','dd'); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $redis->hdel('tablename','key3'); // 删除 hash 表里的 指定key
   $redis->hdel('tablename','key1','key2'); // 删除 hash 表里多个 key
   $a = $redis->hget('tablename','key1'); // 获取对应的哈希表 里的 指定的 key 的值
   $c = $redis->hgetall('tablename');// 获取hash 表里所有的key value

2. hash 表中判断是否存在某个key

   $redis->hset('tablename','key1','cc'); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $a = $redis->hExists('tablename','key1'); // 检测 hash 表中是否存在某个key 存在返回 true  不存在返回 false
   $b = $redis->hExists('tablename','key2');// 检测 hash 表中是否存在某个key 存在返回 true  不存在返回 false

3.hash 表 指定 key 增加 某个值 ,这个值可以是负数,但不能是小数 / 增加某个值,可以是小数 

$redis->hset('tablename','key1',0); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $redis->hincrby('tablename','key1',1); // 指定 hash 表中 key 的 value 增加 指定的数值,如果为负数则是 减法,不能是小数, 如未定义key,则会初始化val 为 0,如果 key 的值是字符串,使用这个方法将会报错
   $redis->hIncrbyfloat('tablename','key1',1.2); // 指定 hash 表中 key 的 value 增加 指定的数值,如果为负数则是 减法,可以是小数, 如未定义key,则会初始化val 为 0,如果 key 的值是字符串,使用这个方法将会报错

4. 获取hash 表里所有 的key / 获取 hash 表里所有 key 的数量 / 获取 hash 表里所有的key 对应的 value

   $redis->hset('tablename','key1',0); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $redis->hset('tablename','key2','a');
   $a = $redis->hkeys('tablename'); // 获取hash 表里所有的key
   $b = $redis->hlen('tablename'); // 获取hash 表里所有的key 的数量
   $c = $redis->hvals('tablename'); // 获取hash 表里所有的key 的对应的value

5 获取多个key 对应的val / 设置多个key 对应的 val / key 不存在的时候才才可以创建成功 返回 true / false

   $redis->hset('tablename','key1',0); // 设置值,参数依次是 哈希表名,key, value, 如果哈希表名不存在会被创建
   $redis->hset('tablename','key2','a');
   $a = $redis->hmget('tablename',['key1','key2']); // 获取多个key 对应的 value
   $redis->hmset('tablename',['key3'=>'val3','key4'=>'value4']); // 设置多个key 对应的 value
   $c = $redis->hsetnx('tablename','key5','dasdasd'); // key 不存在才能创建成功

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值