redis 从小白到大师系列

字符串

Redis 字符串数据类型

  1. set 字符串
/**
 * 设置字符串
 */
$t = $redis->set('o1','o1');
//返回true or false
var_dump($t);
  1. get字符串
/**
 * 获取字符串
 */
$t = $redis->get('o1');
//返回true or false
var_dump($t);

结果:
string(2) “o1”

  1. 返回 key 中字符串值的子字符 getrange
/**
 * 已存字符串:abcdefghijklmo
 * 获取string  getRange 获取存储在指定 key 中字符串的子字符串
 */
$geRange = $redis->getRange('k1',0,-1);
var_dump($geRange);

结果:
string(14) “abcdefghijklmo”

  1. getSet 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
$getSet = $redis->getSet('k1','AAABBBCCCDDD');
var_dump($getSet);

结果:
string(14) “abcdefghijklmo”

  1. mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil
/**
 * 批量获取 a100 不存在,所以未false
 */
$mget = $redis->mget(['a1','a2','a100']);

结果:
array(3) { [0]=> string(3) “v11” [1]=> string(3) “v22” [2]=> bool(false) }

  1. 批量设置string
/**
 * 批量设置
 */
$arr = [];
$arr['a1'] = 'v11';
$arr['a2'] = 'v22';
$arr['a3'] = 'v33';
$arr['a4'] = 'v44';
$res = $redis->mset($arr);
var_dump($res);

结果
bool(true)
redis 从小白到大师系列_第1张图片

  1. Setex 命令为指定的 key 设置值及其过期时间

/**

  • Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值,如果不存在,则添加
    */
    $res = r e d i s − > s e t e x ( ′ a 1 ′ , 30 , ′ a a a a ′ ) ; v a r d u m p ( redis->setex('a1',30,'aaaa'); var_dump( redis>setex(a1,30,aaaa);vardump(res);
    redis 从小白到大师系列_第2张图片
    结果:
    bool(true)
  1. Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。

/**

  • Setnx 命令
    */
    $res = r e d i s − > s e t n x ( ′ s e t n x ′ , ′ 你 好 ′ ) ; v a r d u m p ( redis->setnx('setnx','你好'); var_dump( redis>setnx(setnx,);vardump(res);
在这里插入代码片

如果key setnx 不存在则设置成功,返回true
如果如果key setnx 存在,则返回false
结果:
bool(true)

可设置过期的NX

$res = $redis->set('setnx1','setnx1',['NX','EX'=>60]);
var_dump($res);
  1. strlen 返回 key 所储存的字符串值的长度
/**
 * strlen 返回 key 所储存的字符串值的长度。
 */

$strlen = $redis->strlen('setnx');
var_dump($strlen);

结果:
int(6)

  1. incr命令

Redis Incr 命令将 key 中储存的数字值增一。

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在 64 位(bit)有符号数字表示之内

/**
 * Incr  命令将 key 中储存的数字值增一
 */
$res = $redis->incr("incr_name");
var_dump($res);

结果:
int(1)
redis 从小白到大师系列_第3张图片
11. Incrby 命令和incr一样,只是需要自定义步长

 * Incrby 命令和incr一样,只是需要自定义步长
 */
$res = $redis->incrBy("incrby_name",2);
var_dump($res);

/**

  1. Incrbyfloat 命令
/**
 * Incrby 命令和incr一样,只是需要自定义步长
 */
$res = $redis->incrByFloat("Incrbyfloat_name1",2.55);
var_dump($res);

结果:
float(2.55)

  1. Decr 命令
    Redis Decr 命令将 key 中储存的数字值减一。

如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。

如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。

本操作的值限制在 64 位(bit)有符号数字表示之内。

/**
 * Incrby 命令和incr一样,只是需要自定义步长
 */
$res = $redis->decr("incr_name");
var_dump($res);

结果:
一直减一会出现负数
int(1)
int(-10)

  1. Decrby 命令
/**
 * decrBy 命令和incr一样,只是需要自定义步长
 */
$res = $redis->decrBy("incr_name",2);
var_dump($res);
  1. Append 命令
    Redis Append 命令用于为指定的 key 追加值。
    如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
    如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样
$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”

Hash

Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。
Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。

  1. hset 命令
    Redis Hset 命令用于为哈希表中的字段赋值 。
    如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
    如果字段已经存在于哈希表中,旧值将被覆盖。
/**
 * hash hset
 */
$res = $redis->hSet('hset_key','user_1','1');
var_dump($res);

返回值:
如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。

redis 从小白到大师系列_第4张图片
2. hmset() 批量插入

$arr['user_id'] = 1;
$arr['user_name'] = '李冰';
$arr['user_age'] = 100;
$arr['user_address'] = '西安市未央区吕小寨';
$res = $redis->hMSet('hset_key',$arr);
var_dump($res);

返回值:
true

redis 从小白到大师系列_第5张图片

  1. hget 命令用于返回哈希表中指定字段的值。
$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” }

  1. HGETALL 获取在哈希表中指定 key 的所有字段和值
$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) "西安市未央区吕小寨"
}
  1. hdel 命令
/**
 * Hdel 命令用于删除哈希表 key 中的一个或多个指定字段,不存在的字段将被忽略。
 */

$res = $redis->hDel('hset_key4','user_id');
var_dump($res);

返回值:
int(1)

删除user_id
redis 从小白到大师系列_第6张图片
删除user_id
redis 从小白到大师系列_第7张图片

删除多个hash_key

$res = $redis->hDel('hset_key3','user_id','user_name','user_address');
var_dump($res);

在这里插入图片描述

  1. Hexists 命令用于查看哈希表的指定字段是否存在。
$res = $redis->hExists('hset_key3','user_id');
var_dump($res);

如果没有hash_key ,则返回false,
如果有hash_key ,则返回true,
在这里插入图片描述

  1. Hincrby 命令 用于为哈希表中的字段值加上指定增量值。
    Redis Hincrby 命令用于为哈希表中的字段值加上指定增量值。
    增量也可以为负数,相当于对指定字段进行减法操作。
    如果哈希表的 key 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。
    如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。
    对一个储存字符串值的字段执行 HINCRBY 命令将造成一个错误。
    本操作的值被限制在 64 位(bit)有符号数字表示之内。
在这里插入代码片

增加前user_age
redis 从小白到大师系列_第8张图片
增加后user_age
redis 从小白到大师系列_第9张图片

  1. Redis Hincrbyfloat 命令用于为哈希表中的字段值加上指定浮点数增量值。

如果指定的字段不存在,那么在执行命令前,字段的值被初始化为 0 。

$res = $redis->hIncrByFloat('hset_key_float','age',10.01);
var_dump($res);

返回值:
float(10.01)

redis 从小白到大师系列_第10张图片

你可能感兴趣的:(redis,android,数据库)