Redis 字符串数据类型
/**
* 设置字符串
*/
$t = $redis->set('o1','o1');
//返回true or false
var_dump($t);
/**
* 获取字符串
*/
$t = $redis->get('o1');
//返回true or false
var_dump($t);
结果:
string(2) “o1”
/**
* 已存字符串:abcdefghijklmo
* 获取string getRange 获取存储在指定 key 中字符串的子字符串
*/
$geRange = $redis->getRange('k1',0,-1);
var_dump($geRange);
结果:
string(14) “abcdefghijklmo”
$getSet = $redis->getSet('k1','AAABBBCCCDDD');
var_dump($getSet);
结果:
string(14) “abcdefghijklmo”
/**
* 批量获取 a100 不存在,所以未false
*/
$mget = $redis->mget(['a1','a2','a100']);
结果:
array(3) { [0]=> string(3) “v11” [1]=> string(3) “v22” [2]=> bool(false) }
/**
* 批量设置
*/
$arr = [];
$arr['a1'] = 'v11';
$arr['a2'] = 'v22';
$arr['a3'] = 'v33';
$arr['a4'] = 'v44';
$res = $redis->mset($arr);
var_dump($res);
/**
/**
在这里插入代码片
如果key setnx 不存在则设置成功,返回true
如果如果key setnx 存在,则返回false
结果:
bool(true)
可设置过期的NX
$res = $redis->set('setnx1','setnx1',['NX','EX'=>60]);
var_dump($res);
/**
* strlen 返回 key 所储存的字符串值的长度。
*/
$strlen = $redis->strlen('setnx');
var_dump($strlen);
结果:
int(6)
Redis Incr 命令将 key 中储存的数字值增一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内
/**
* Incr 命令将 key 中储存的数字值增一
*/
$res = $redis->incr("incr_name");
var_dump($res);
结果:
int(1)
11. Incrby 命令和incr一样,只是需要自定义步长
* Incrby 命令和incr一样,只是需要自定义步长
*/
$res = $redis->incrBy("incrby_name",2);
var_dump($res);
/**
/**
* Incrby 命令和incr一样,只是需要自定义步长
*/
$res = $redis->incrByFloat("Incrbyfloat_name1",2.55);
var_dump($res);
结果:
float(2.55)
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
/**
* Incrby 命令和incr一样,只是需要自定义步长
*/
$res = $redis->decr("incr_name");
var_dump($res);
结果:
一直减一会出现负数
int(1)
int(-10)
/**
* decrBy 命令和incr一样,只是需要自定义步长
*/
$res = $redis->decrBy("incr_name",2);
var_dump($res);
$v = "wo shi shui";
$temp = $redis->append('k1',$v); //返回该字符串的长度
$tmp = $redis->get('k1');
var_dump($temp);
var_dump($tmp);
int(34)
string(34) “AAABBBCCCDDDwo shi shuiwo shi shui”
Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。
/**
* hash hset
*/
$res = $redis->hSet('hset_key','user_1','1');
var_dump($res);
返回值:
如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
$arr['user_id'] = 1;
$arr['user_name'] = '李冰';
$arr['user_age'] = 100;
$arr['user_address'] = '西安市未央区吕小寨';
$res = $redis->hMSet('hset_key',$arr);
var_dump($res);
返回值:
true
$hget = $redis->hGet('hset_key','user_name');
var_dump($hget);
返回值:
string(6) “李冰”
$res = $redis->hMGet('hset_key',['user_name','user_age1']);
var_dump($res);
array(2) { [“user_name”]=> string(6) “李冰” [“user_age”]=> string(3) “100” }
$res = $redis->hGetAll('hset_key');
var_dump($res);
返回值:
array(4) {
["user_id"]=>
string(1) "1"
["user_name"]=>
string(6) "李冰"
["user_age"]=>
string(3) "100"
["user_address"]=>
string(27) "西安市未央区吕小寨"
}
/**
* Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
*/
$res = $redis->hDel('hset_key4','user_id');
var_dump($res);
返回值:
int(1)
删除多个hash_key
$res = $redis->hDel('hset_key3','user_id','user_name','user_address');
var_dump($res);
$res = $redis->hExists('hset_key3','user_id');
var_dump($res);
如果没有hash_key ,则返回false,
如果有hash_key ,则返回true,
在这里插入代码片
如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
$res = $redis->hIncrByFloat('hset_key_float','age',10.01);
var_dump($res);
返回值:
float(10.01)