关于php:PHP使用redis

9次阅读

共计 6628 个字符,预计需要花费 17 分钟才能阅读完成。

php 操作 redis 参考

PHP 应用 Redis

phpRedis 函数应用总结

php 操作 redis 实例参考(反对一般和哨兵模式两种)

php 操作 redis

应用形式

1: 一般模式

$redis = new Redis();
$redis->sentinels = [['host' => '127.0.0.1','port'=> 6379, 'password' => 'XXX'],
];
$redis->mode = Redis::NORMAL;// 一般模式
$redis->set('key', 'value', 10);// 设置 key=value, 生效时长为 10 秒
$redis->get('key');// 获取指定 key
$redis->delete('key');// 删除指定 key
$redis->decr('key', 2);//key 值自减 2 

2:哨兵模式

$redis = new Redis();
$redis->sentinels = [['host' => '127.0.0.1','port'=> 26981, 'password' => 'XXX'],
    ['host' => '127.0.0.1','port'=> 26982, 'password' => 'XXX'],
    ['host' => '127.0.0.1','port'=> 26983, 'password' => 'XXX'],
];
$redis->masterName = 'XXX';// 主节点名称
$redis->mode = Redis::SENTRY;// 哨兵模式
$redis->set('key', 'value', 10);// 设置 key=value, 生效时长为 10 秒
$redis->get('key');// 获取指定 key
$redis->delete('key');// 删除指定 key
$redis->decr('key', 2);//key 值自减 2 

redis 罕用办法总结

/*1.Connection*/
   $redis = new Redis();
   $redis->connect('127.0.0.1',6379,1);// 短链接,本地 host,端口为 6379,超过 1 秒放弃链接
   $redis->open('127.0.0.1',6379,1);// 短链接(同上)
   $redis->pconnect('127.0.0.1',6379,1);// 长链接,本地 host,端口为 6379,超过 1 秒放弃链接
   $redis->popen('127.0.0.1',6379,1);// 长链接(同上)
   $redis->auth('password');// 登录验证明码,返回【true | false】$redis->select(0);// 抉择 redis 库,0~15 共 16 个库
   $redis->close();// 开释资源
   $redis->ping(); // 查看是否还再链接,[+pong]
   $redis->ttl('key');// 查看生效工夫[-1 | timestamps]
   $redis->persist('key');// 移除生效工夫[1 | 0]
   $redis->sort('key',[$array]);// 返回或保留给定列表、汇合、有序汇合 key 中通过排序的元素,$array 为参数 limit 等!【配合 $array 很弱小】[array|false]


/*2. 共性的运算归类 */
   $redis->expire('key',10);// 设置生效工夫[true | false]
   $redis->move('key',15);// 把以后库中的 key 挪动到 15 库中[0|1]

//string
   $redis->strlen('key');// 获取以后 key 的长度
   $redis->append('key','string');// 把 string 追加到 key 现有的 value 中[追加后的个数]
   $redis->incr('key');// 自增 1,如不存在 key, 赋值为 1(只对整数无效, 存储以 10 进制 64 位,redis 中为 str)[new_num | false]
   $redis->incrby('key',$num);// 自增 $num, 不存在为赋值, 值需为整数[new_num | false]
   $redis->decr('key');// 自减 1,[new_num | false]
   $redis->decrby('key',$num);// 自减 $num,[new_num | false]
   $redis->setex('key',10,'value');//key=value,有效期为 10 秒[true]
//list
   $redis->llen('key');// 返回列表 key 的长度, 不存在 key 返回 0,[len | 0]
//set
   $redis->scard('key');// 返回汇合 key 的基数(汇合中元素的数量)。[num | 0]
   $redis->sMove('key1', 'key2', 'member');// 挪动,将 member 元素从 key1 汇合挪动到 key2 汇合。[1 | 0]
//Zset
   $redis->zcard('key');// 返回汇合 key 的基数(汇合中元素的数量)。[num | 0]
   $redis->zcount('key',0,-1);// 返回有序集 key 中,score 值在 min 和 max 之间 (默认包含 score 值等于 min 或 max) 的成员。[num | 0]
//hash
   $redis->hexists('key','field');// 查看 hash 中是否存在 field,[1 | 0]
   $redis->hincrby('key','field',$int_num);// 为哈希表 key 中的域 field 的值加上量(+|-)num,[new_num | false]
   $redis->hlen('key');// 返回哈希表 key 中域的数量。[num | 0]



/*3.Server*/
   $redis->dbSize();// 返回以后库中的 key 的个数
   $redis->flushAll();// 清空整个 redis[总 true]
   $redis->flushDB();// 清空以后 redis 库[总 true]
   $redis->save();// 同步?? 把数据存储到磁盘 -dump.rdb[true]
   $redis->bgsave();// 异步??把数据存储到磁盘 -dump.rdb[true]
   $redis->info();// 查问以后 redis 的状态 [verson:2.4.5....]
   $redis->lastSave();// 上次存储工夫 key 的工夫[timestamp]

   $redis->watch('key','keyn');// 监督一个(或多个) key,如果在事务执行之前这个(或这些) key 被其余命令所改变,那么事务将被打断 [true]
   $redis->unwatch('key','keyn');// 勾销监督一个(或多个) key [true]
   $redis->multi(Redis::MULTI);// 开启事务,事务块内的多条命令会依照先后顺序被放进一个队列当中,最初由 EXEC 命令在一个原子工夫内执行。$redis->multi(Redis::PIPELINE);// 开启管道,事务块内的多条命令会依照先后顺序被放进一个队列当中,最初由 EXEC 命令在一个原子工夫内执行。$redis->exec();// 执行所有事务块内的命令,;【事务块内所有命令的返回值,按命令执行的先后顺序排列,当操作被打断时,返回空值 false】/*4.String,键值对,创立更新同操作 */
   $redis->setOption(Redis::OPT_PREFIX,'hf_');// 设置表前缀为 hf_
   $redis->set('key',1);// 设置 key=aa value=1 [true]
   $redis->mset($arr);// 设置一个或多个键值[true]
   $redis->setnx('key','value');//key=value,key 存在返回 false[|true]
   $redis->get('key');// 获取 key [value]
   $redis->mget($arr);//(string|arr), 返回所查询键的值
   $redis->del($key_arr);//(string|arr)删除 key,反对数组批量删除【返回删除个数】$redis->delete($key_str,$key2,$key3);// 删除 keys,[del_num]
   $redis->getset('old_key','new_value');// 先取得 key 的值,而后从新赋值,[old_value | false]



/*5.List 栈的构造, 留神表头表尾, 创立更新离开操作 */
   $redis->lpush('key','value');// 增,只能将一个值 value 插入到列表 key 的表头,不存在就创立 [列表的长度 |false]
   $redis->rpush('key','value');// 增,只能将一个值 value 插入到列表 key 的表尾 [列表的长度 |false]
   $redis->lInsert('key', Redis::AFTER, 'value', 'new_value');// 增,将值 value 插入到列表 key 当中,位于值 value 之前或之后。[new_len | false]
   $redis->lpushx('key','value');// 增,只能将一个值 value 插入到列表 key 的表头,不存在不创立 [列表的长度 |false]
   $redis->rpushx('key','value');// 增,只能将一个值 value 插入到列表 key 的表尾,不存在不创立 [列表的长度 |false]
   $redis->lpop('key');// 删,移除并返回列表 key 的头元素,[被删元素 | false]
   $redis->rpop('key');// 删,移除并返回列表 key 的尾元素,[被删元素 | false]
   $redis->lrem('key','value',0);// 删,依据参数 count 的值,移除列表中与参数 value 相等的元素 count=(0|- n 表头向尾 |+ n 表尾向头移除 n 个 value)  [被移除的数量 | 0]
   $redis->ltrim('key',start,end);// 删,列表修剪,保留 (start,end) 之间的值 [true|false]
   $redis->lset('key',index,'new_v');// 改,从表头数,将列表 key 下标为第 index 的元素的值为 new_v, [true | false]
   $redis->lindex('key',index);// 查,返回列表 key 中,下标为 index 的元素[value|false]
   $redis->lrange('key',0,-1);// 查,(start,stop|0,-1)返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。[array|false]

/*6.Set,没有反复的 member,创立更新同操作 */
   $redis->sadd('key','value1','value2','valuen');// 增,改,将一个或多个 member 元素退出到汇合 key 当中,曾经存在于汇合的 member 元素将被疏忽。[insert_num]
   $redis->srem('key','value1','value2','valuen');// 删,移除汇合 key 中的一个或多个 member 元素,不存在的 member 元素会被疏忽 [del_num | false]
   $redis->smembers('key');// 查,返回汇合 key 中的所有成员 [array | '']
   $redis->sismember('key','member');// 判断 member 元素是否是汇合 key 的成员 [1 | 0]
   $redis->spop('key');// 删,移除并返回汇合中的一个随机元素 [member | false]
   $redis->srandmember('key');// 查,返回汇合中的一个随机元素 [member | false]
   $redis->sinter('key1','key2','keyn');// 查,返回所有给定汇合的交加 [array | false]
   $redis->sunion('key1','key2','keyn');// 查,返回所有给定汇合的并集 [array | false]
   $redis->sdiff('key1','key2','keyn');// 查,返回所有给定汇合的差集 [array | false]


/*7.Zset,没有反复的 member,有排序程序, 创立更新同操作 */
   $redis->zAdd('key',$score1,$member1,$scoreN,$memberN);// 增,改,将一个或多个 member 元素及其 score 值退出到有序集 key 当中。[num | 0]
   $redis->zrem('key','member1','membern');// 删,移除有序集 key 中的一个或多个成员,不存在的成员将被疏忽。[del_num | 0]
   $redis->zscore('key','member');// 查, 通过值反拿权 [num | null]
   $redis->zrange('key',$start,$stop);// 查,通过(score 从小到大)【排序名次范畴】拿 member 值,返回有序集 key 中,【指定区间内】的成员 [array | null]
   $redis->zrevrange('key',$start,$stop);// 查,通过(score 从大到小)【排序名次范畴】拿 member 值,返回有序集 key 中,【指定区间内】的成员 [array | null]
   $redis->zrangebyscore('key',$min,$max[,$config]);// 查,通过 scroe 权范畴拿 member 值,返回有序集 key 中,指定区间内的 (从小到大排) 成员[array | null]
   $redis->zrevrangebyscore('key',$max,$min[,$config]);// 查,通过 scroe 权范畴拿 member 值,返回有序集 key 中,指定区间内的 (从大到小排) 成员[array | null]
   $redis->zrank('key','member');// 查,通过 member 值查 (score 从小到大) 排名后果中的【member 排序名次】[order | null]
   $redis->zrevrank('key','member');// 查,通过 member 值查 (score 从大到小) 排名后果中的【member 排序名次】[order | null]
   $redis->ZINTERSTORE();// 交加
   $redis->ZUNIONSTORE();// 差集

/*8.Hash,表构造,创立更新同操作 */
   $redis->hset('key','field','value');// 增,改,将哈希表 key 中的域 field 的值设为 value, 不存在创立, 存在就笼罩【1 | 0】$redis->hget('key','field');// 查,取值【value|false】$arr = array('one'=>1,2,3);$arr2 = array('one',0,1);
   $redis->hmset('key',$arr);// 增,改,设置多值 $arr 为 (索引 | 关联) 数组,$arr[key]=field, [true]
   $redis->hmget('key',$arr2);// 查,获取指定下标的 field,[$arr | false]
   $redis->hgetall('key');// 查,返回哈希表 key 中的所有域和值。[当 key 不存在时,返回一个空表]
   $redis->hkeys('key');// 查,返回哈希表 key 中的所有域。[当 key 不存在时,返回一个空表]
   $redis->hvals('key');// 查,返回哈希表 key 中的所有值。[当 key 不存在时,返回一个空表]
   $redis->hdel('key',$arr2);// 删,删除指定下标的 field, 不存在的域将被疏忽,[num | false]
正文完
 0