1.
Redis的介绍:
Redis是一个基于key-value的高速缓存系统,类似于memcached,但是支持更复杂的数据结构List、Set、String zset,并且有持久化的功能
。
支持
RDB
快照 和
AOF
日志
快照(snapshot):
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照
日志:redis会将每一个收到的写命令都通过write函数追加到文件中,
当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。一般用于恢复数据时使用
总结:一般来说, 如果想达到足以媲美 PostgreSQL 的数据安全性, 你应该同时使用两种持久化功能。如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失, 那么你可以只使用 RDB 持久化。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快
。
2.
R
edis和
memcached
的区别
2.1
R
edis单线程
memcached
多线程
2.2 R
edis申请内存
memcached
预分配
2.3 R
edis并不是所有数据都一直存储在内存里
2.4 R
edis支持多种数据类型
memcached
支持
2.5 R
edis支持数据库备份 即
master-slave
模式数据备份
2.6
R
edis支持数据库持久化 将内存中的数据保持在磁盘中 数据安全
3.redis的安装
windows下的安装
linux下的安装
laravel支持
redis
yii支持
redis
4.
redis的简单使用
<?php
echo phpinfo();
//$redis=new Redis();
//$redis->connect('127.0.0.1',6379);
//设置值
//$redis->set('name1','shente1','60*24');
// echo $redis->get('name1');
//检测键是否存在
// $exists=$redis->exists('name1');
// print_r($exists);
//匹配键
//$kes=$redis->keys('*');
//匹配所有n开头的键
//$kes=$redis->keys('n*');
//匹配所有y结尾的键
//$kes=$redis->keys('*y');
//匹配以n开头以e结尾的
//$kes=$redis->keys('n*e');
//print_r($kes);
//删除键
//删除多个键
// $data=array('name','mykey');
// $redis->del($data);
//删除单个键
//$redis->del('name1');
//$kes=$redis->keys('*');
//print_r($kes);
//改键名
//echo $redis->get('name5');
// $redis->rename('name5','小明');
// echo $redis->get('小明');
// $kes=$redis->keys('*');
// print_r($kes);
//返回当前数据库键总数
// $num=$redis->dbsize();
// print_r($num);
//改键名
//$redis->rename('myKey','lijunming');
//设置过期时间
//$redis->expire('name','50');
//echo $redis->get('小明');
//返回生存时间
//$time1=$redis->ttl('name');
//print_r($time1);
//选择数据库
// $redis->select(10);//切换数据库,redis总共16个数据库,0~15
// $redis->set('adsfsadgfh','5');
// $kes=$redis->dbsize();
// 移动数据到指定数据库
//$redis->move('age',5);
//print_r($kes);
//删除当前数据库所有的键
//$redis->flushdb();
//删除所有数据库中所有的键
//$redis->flushall();
// $kes=$redis->keys('*');
// print_r($kes);
//设置多个值
//$redis->mset(array('key1'=>'name1','key2'=>'name2','key3'=>'name3'));
// //获取多个值
// $data=$redis->mget(array('key1','key2','key3'));
// $num=$redis->keys('*');
// print_r($data);
//自增操作
//$redis->set('num',5);
//加一操作
//$incr=$redis->incr('num');
//print_r($incr);
//加指定值
//$incrby=$redis->incrby('num',100);
//print_r($incrby);exit;
//自减操作
// $decr=$redis->decr('num');//自减1
// $decrby=$redis->decrby('num',100);//自减指定数据
// print_r($decrby);exit;
//追加
//$redis->set('name5','李军明');
// $app=$redis->append('name5','沈特');
// $app=$redis->get('name5');
// print_r($app);exit;
// //截取
// $app=$redis->substr('name5',0,6);
// print_r($app);exit;
?>