yunbaopeiwan-web/web/app/redis.php

293 lines
8.9 KiB
PHP
Raw Normal View History

2022-06-07 10:06:10 +08:00
<?php
// +———————————————————————————————————
// | Created by Yunbao
// +———————————————————————————————————
// | Copyright (c) 2013~2022 http://www.yunbaokj.com All rights reserved.
// +———————————————————————————————————
// | Author: https://gitee.com/yunbaokeji
// +———————————————————————————————————
// | Date: 2022-05-28
// +———————————————————————————————————
/* redis */
/* redis链接 */
function connectionRedis(){
if(!isset($GLOBALS['redisdb'])){
$REDIS_HOST= config('database.REDIS_HOST');
$REDIS_AUTH= config('database.REDIS_AUTH');
$REDIS_PORT= config('database.REDIS_PORT');
$redis = new \Redis();
$redis -> connect($REDIS_HOST,$REDIS_PORT);
$redis -> auth($REDIS_AUTH);
$GLOBALS['redisdb']=$redis;
}
}
/* 设置缓存 */
function setcache($key,$info){
$config=getConfigPri();
if($config['cache_switch']!=1){
return 1;
}
$GLOBALS['redisdb']->set($key,json_encode($info));
$GLOBALS['redisdb']->setTimeout($key, $config['cache_time']);
return 1;
}
/**
* redis 字符串String 类型
* 将key和value对应。如果key已经存在了它会被覆盖而不管它是什么类型。
* @param $key
* @param $info
* @param $exp 过期时间
*/
function setcaches($key,$info,$time=0){
$GLOBALS['redisdb']->set($key,json_encode($info));
if($time > 0){
$GLOBALS['redisdb']->setTimeout($key, $time);
}
return 1;
}
/* 获取缓存 */
function getcache($key){
$config=getConfigPri();
$isexist=$GLOBALS['redisdb']->Get($key);
if($config['cache_switch']!=1){
$isexist=false;
}
return json_decode($isexist,true);
}
/**
* redis 字符串String 类型
* 返回key的value。如果key不存在返回特殊值nil。如果key的value不是string就返回错误因为GET只处理string类型的values。
* @param $key
*/
function getcaches($key){
$isexist=$GLOBALS['redisdb']->Get($key);
return json_decode($isexist,true);
}
/**
* 删除一个或多个key
* @param $keys 数组/ 数组以逗号拼接的string
*/
function delcache($key){
$isexist=$GLOBALS['redisdb']->delete($key);
return 1;
}
/**
* redis 哈希表(hash)类型
* 返回哈希表 $key 中,所有的域和值。
* @param $key
*
*/
function hGetAll($key){
return $GLOBALS['redisdb']->hGetAll($key);
}
/**
* 添加一个VALUE到HASH中。如果VALUE已经存在于HASH中则返回FALSE。
* @param string $key
* @param string $hashKey
* @param string $value
*/
function hSet( $key, $hashKey, $value ) {
return $GLOBALS['redisdb']->hSet($key, $hashKey, $value);
}
/**
* redis 哈希表(hash)类型
* 批量填充HASH表。不是字符串类型的VALUE自动转换成字符串类型。使用标准的值。NULL值将被储存为一个空的字符串。
* 可以批量添加更新 value,key 不存在将创建,存在则更新值
* @param $key
* @param $fieldArr 要设置的键对值
* @return
* 当key不是哈希表(hash)类型时,返回一个错误。
*/
function hMSet($key,$fieldArr){
return $GLOBALS['redisdb']->hmset($key,$fieldArr);
}
/**
* 取得HASH中的VALUE如何HASH不存在或者KEY不存在返回FLASE。
* @param string $key
* @param string $hashKey
* @return string The value, if the command executed successfully BOOL FALSE in case of failure
*/
function hGet($key, $hashKey) {
return $GLOBALS['redisdb']->hGet($key,$hashKey);
}
/**
* 批量取得HASH中的VALUE如何hashKey不存在或者KEY不存在返回FLASE。
* @param string $key
* @param array $hashKey
*/
function hMGet( $key, $hashKeys ) {
return $GLOBALS['redisdb']->hMGet($key,$hashKeys);
}
/**
* 根据HASH表的KEY为KEY对应的VALUE自增参数VALUE。浮点型
* 推荐使用 hIncrByFloat 不推荐使用 hIncrBy(整型)
* 先用 hIncrByFloat 再使用 hIncrBy 自增无效
* @param string $key
* @param string $hashKey
* @param value 自增值 整型/小数
*/
function hIncrByFloat( $key, $hashKey, $value){
return $GLOBALS['redisdb']->hIncrByFloat( $key, $hashKey, $value);
}
/**
* 删除哈希表key中的一个指定域不存在的域将被忽略。
* @param string $key
* @param string $hashKey
*/
function hDel($key,$hashKey){
return $GLOBALS['redisdb']->hDel( $key, $hashKey);
}
/**
* 添加一个字符串值到LIST容器的顶部左侧如果KEY不存在曾创建一个LIST容器如果KEY存在并且不是一个LIST容器那么返回FLASE。
* @param string $key
* @param string $val
*/
function lPush($key,$val){
return $GLOBALS['redisdb']->lPush($key,$val);
}
/**
* 添加一个字符串值到LIST容器的底部右侧如果KEY不存在曾创建一个LIST容器如果KEY存在并且不是一个LIST容器那么返回FLASE。
*
* @param string $key
* @param string $val
*/
function rPush($key,$val){
return $GLOBALS['redisdb']->rPush($key,$val);
}
/**
* 返回LIST顶部左侧的VALUE并且从LIST中把该VALUE弹出。
* @param string $key
*/
function lPop($key){
return $GLOBALS['redisdb']->lPop($key);
}
/**
* 返回LIST底部右侧的VALUE并且从LIST中把该VALUE弹出。
* @param string $key
*/
function rPop($key){
return $GLOBALS['redisdb']->rPop($key);
}
/*
* 构建一个集合(有序集合) 可排序
* @param string $key 集合名称
* @param string $value1
* @param double $score1
* return 被成功添加的新成员的数量,不包括那些被更新的、已经存在的成员。
*/
function zAdd($key,$score1,$value1){
return $GLOBALS['redisdb']->zAdd($key,$score1,$value1);
}
/**
* 返回key对应的有序集合中member的score值。如果member在有序集合中不存在那么将会返回nil。
* @param string $key
* @param string $member
* @return float
*/
function zScore( $key, $member ) {
return $GLOBALS['redisdb']->zScore( $key, $member );
}
/**
* 返回存储在key对应的有序集合中的元素的个数。
* @param string $key
* @return int the set's cardinality
*/
function zCard($key){
return $GLOBALS['redisdb']->zCard($key);
}
/**
* 将key对应的有序集合中member元素的scroe加上 value value可以是负值
* @param string $key
* @param float $value (double) value that will be added to the member's score
* @param string $member
* @return float the new value
* @example
* <pre>
* $redis->delete('key');
* $redis->zIncrBy('key', 2.5, 'member1'); // key or member1 didn't exist, so member1's score is to 0
* // before the increment and now has the value 2.5
* $redis->zIncrBy('key', 1, 'member1'); // 3.5
* </pre>
* member 成员的新 score 值,以字符串形式表示。
*/
function zIncrBy( $key, $value, $member ) {
return $GLOBALS['redisdb']->zIncrBy( $key, $value, $member );
}
/**
* 取得特定范围内的排序元素,0代表第一个元素,1代表第二个以此类推。-1代表最后一个,-2代表倒数第二个...
* @param string $key
* @param int $start
* @param int $end
* @param bool $withscores
* @return array Array containing the values in specified range.
* @example
* <pre>
* $redis->zAdd('key1', 0, 'val0');
* $redis->zAdd('key1', 2, 'val2');
* $redis->zAdd('key1', 10, 'val10');
* $redis->zRange('key1', 0, -1); // array('val0', 'val2', 'val10')
* // with scores
* $redis->zRange('key1', 0, -1, true); // array('val0' => 0, 'val2' => 2, 'val10' => 10)
* </pre>
* 指定区间内,带有 score (可选)的有序集成员的列表。
* zRange 根据 score 正序 zRevRange 倒序
*/
function zRange( $key, $start, $end, $withscores = null ) {
return $GLOBALS['redisdb']->zRange( $key, $start, $end, $withscores) ;
}
function zRevRange( $key, $start, $end, $withscores = null ) {
return $GLOBALS['redisdb']->zRevRange( $key, $start, $end, $withscores) ;
}
/**
* 从有序集合中删除指定的成员。
* @param string $key
* @param string $member1
* @return int Number of deleted values
*/
function zRem( $key, $member1 ) {
return $GLOBALS['redisdb']->zRem( $key, $member1 );
}
/**
* 返回存储在key对应的有序集合中的元素的个数。
* @param string $key
* @return int the set's cardinality
*/
function zSize($key){
return $GLOBALS['redisdb']->zCard($key);
}