Redis整理(2)之数据类型string

来源:互联网 发布:冒险岛 攻击矩阵 编辑:程序博客网 时间:2024/06/07 14:19

大同小异,redis包含了memcache的协议,所以string型数据操作基本一致,

string类型一个键所能存储的键大小512MB

回顾一下:我们应用NoSql,从浅层次上无非就用内存存缓存,也可以说是用内存存那些查询量比较频繁的数据,那么如果要缓存一片文章,文章可能有标题,时间,内容。那么我们处理其实也简单,可以将这些东西存在一个数组里,然后序列化
函数serialize($arr),unserialize($string)
不过原则上还是应该序列化成json 或者  XML这类交换格式,我可以保证存在redis服务器上的键值可以完美被其他语言平台读取。还有被Ajax读取
函数json_encode($arr)  json_decode($string)
<?php
   $redis = new Redis();
   $redis->connect('192.168.104.10',6379);
   $title   = "This title";
   $time    =time();
   $content = "write something here";
   $value   = array('title'=>$title,'time'=>$time,'content'=>$content);
   $value   = serialize($value);//所有数据序列化一个字符串
   $redis->set('first',$value);//将序列号字符串存储进入
   
   $res =  $redis->get('first');
   print $res;
   
   $res = unserialize($res);//解序列化,回归数组
   print_r($res);
?>
//键名遵循变量命名规范!

//set 设置一个键  
$redis->set('test','123');第三个参数代表键生存时间,缺省为不限时

//get 获取一个键
$redis->get('test');

//mset 批量设置键值
$arr = array('one'=>'1','two'=>'2');
$redis->mset($arr);

//mget 批量获取键值
$arr = array('one','two');
print_r($redis->mget($arr));

//incr/decr 做增/减值操作每次+1
$redis->incr('one');   //decr
$redis->incr('one',2); //第二个参数指定增/减量
 echo $redis->get('one');

//strlen 计算值长度
$redis->strlen('one');

//append 向字符串尾加字符串长度
$redis->append('one','string');
//incrbyfloat
$redis->set('one','1');
$redis->incrbyfloat('one',2.5); //decrbyfloat 如果值不为纯数字,那么无法生效

//关于string类型的应用

0 0
原创粉丝点击