PHP操作Redis之String


<?php
/**
 * Created by PhpStorm.
 * User: 白衬衫
 * Date: 2019/7/15
 * Time: 12:32
 * Info: 说明
 */





$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
//$redis->ping();
echo "<pre>";
echo "<h2>Redis 字符串(String)</h2>";
echo "
    1.  set(key,val,过期时间)  设置更新
    2.  get(key)    获取指定key值
    3.  getSet(key,val)     设置指定 key 的值,并返回 key 的旧值
    4.  mget([key,key])     返回所有(一个或多个)给定 key 的值
    5.  setex(key,过期时间,新值)      秒级过期时间
    
    6.  setnx(key,val)  可以不存在时设置key值
    7.  Setrange(key,偏移量,值)   就是从第几位开始修改这个字符
    8.  strlen(key)     获取key值长度
    9.  mset([])        设置多个key,val
    10. msetnx([])      当前值不存在时 设置多个key,val
    
    11. psetex(key,过期时间,新值)  毫秒级过期时间
    12. incr(key) 自加一
    13. incrBy(key,num)     自加指定的整数
    14. incrByFloat(key,num)    自加指定的浮点数
    15. decr(key)       自减一
    
    16. decrBy(key,val)     自减指定整数
    17  append(key,val)     指定字符后边添加val
    

";

//Redis SET 命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型
echo PHP_EOL."SET 命令用于设置给定 key 的值".PHP_EOL;
$redis->set('123456789',123465);
$redis->set('1',123465);


//Redis Get 命令用于获取指定 key 的值。如果 key 不存在,返回 nil 。如果key 储存的值不是字符串类型,返回一个错误
echo PHP_EOL."Get 命令用于获取指定 key 的值".PHP_EOL;
echo $redis->get('123456789').PHP_EOL;

//Redis Getset 命令用于设置指定 key 的值,并返回 key 的旧值
echo PHP_EOL."Getset 命令用于设置指定 key 的值,并返回 key 的旧值".PHP_EOL;
echo '获取返回旧值:'.$redis->getSet('1',10000).PHP_EOL;
echo '获取现在的值:'.$redis->get('1').PHP_EOL;

//这个暂时不懂是干啥的
//echo $redis->getBit('1',3);

//Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
echo PHP_EOL."Mget 命令返回所有(一个或多个)给定 key 的值".PHP_EOL;
$mget =  $redis->mget(['1',2]);
var_dump($mget);


//Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值
echo PHP_EOL."Setex 命令为指定的 key 设置值及其过期时间".PHP_EOL;
$mget =  $redis->setex("1",60,3);
echo '获取现在的值:'.$redis->get('1').PHP_EOL;


//Redis Psetex 命令以毫秒为单位设置 key 的生存时间。
echo PHP_EOL."Psetex 命令以毫秒为单位设置 key 的生存时间".PHP_EOL;
$mget =  $redis->psetex("2",6000,3);
echo '获取现在的值:'.$redis->get('2').PHP_EOL;

//Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
echo PHP_EOL."Setnx 命令为指定的 key 不存在时设置他的值".PHP_EOL;
$redis->setnx(2,20);
echo '获取现在的值:'.$redis->get('2').PHP_EOL;


//Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
echo PHP_EOL."Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始".PHP_EOL;
$redis->setRange('3',4,200);
echo '获取现在的值:'.$redis->get('3').PHP_EOL;


//strlen  返回 key 所储存的字符串值的长度。
echo PHP_EOL."STRLEN key 返回 key 所储存的字符串值的长度。".PHP_EOL;
echo $redis->strlen('3').PHP_EOL;

//mset  同时设置一个或多个 key-value 对
echo PHP_EOL."同时设置一个或多个 key-value 对".PHP_EOL;
$redis->mset([4=>400,5=>500]);


//msetnx  同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。
echo PHP_EOL."同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在".PHP_EOL;
$redis->msetnx([8=>800,9=>900]);



//incr  将 key 中储存的数字值增一。
echo PHP_EOL."将 key 中储存的数字值增一。".PHP_EOL;
$redis->incr('9');
echo $redis->get(9).PHP_EOL;

//incrBy  将 key 所储存的值加上给定的增量值(increment)。
echo PHP_EOL."将 key 所储存的值加上给定的增量值(increment)".PHP_EOL;
$redis->incrBy(8,66);
echo $redis->get(8).PHP_EOL;

//incrByFloat  将 key 所储存的值加上给定的浮点增量值(increment)
echo PHP_EOL."将 key 所储存的值加上给定的浮点增量值(increment)".PHP_EOL;
$redis->incrByFloat(7,0.22);
echo $redis->get(7).PHP_EOL;


// decr 将 key 中储存的数字值增一。。
echo PHP_EOL."将 key 中储存的数字值增一。".PHP_EOL;
$redis->decr('9');
echo $redis->get(9).PHP_EOL;

//Redis Decrby 命令将 key 所储存的值减去指定的减量值
echo PHP_EOL."将 key 所储存的值减去指定的减量值".PHP_EOL;
$redis->decrBy('9',500);
echo $redis->get(9).PHP_EOL;
$redis->decrBy('9',10);
echo $redis->get(9).PHP_EOL;


//Redis Append 命令用于为指定的 key 追加值。
echo PHP_EOL."Append 命令用于为指定的 key 追加值".PHP_EOL;
$redis->append('wu',6666);
echo $redis->get('wu').PHP_EOL;


echo PHP_EOL.PHP_EOL.PHP_EOL;
$zhang = $redis->keys('*');
print_r($zhang);


/*
if($redis->setnx(3,30)){
    echo "OK";
}else{
    echo "No";
}
*/



---------------------
作者:前世的我
来源:前世的我
原文:http://www.w55.site/blog/article/look/id/38.html
版权声明:本文为博主原创文章,转载请附上博文链接!