//调用redis的客户端函数
$redis = RedisCache::get_instance();
$redis_key = "string:traning:mode:send:msg:".$user['id'];
$ttl = 86400;
$redis_val = $redis->set($redis_key,time(),$ttl);

基类: app\common\service\RedisCache.php

<?php

namespace app\common\service;

//1.创建一个单例类
use think\Config;

class RedisCache
{
    private static $redis;

    private function __construct()
    {
        echo '我被实例化了!';
    }

    private function __clone()
    {
        trigger_error('Clone is not allow', E_USER_ERROR);
    }

    public static function get_instance()
    {
        if (!isset(self::$redis)) {
            self::$redis = new \Redis();
            $config = Config::get('cache.redis');
            self::$redis->connect($config['host'],$config['port'],$config['timeout']);
            if(!empty($config['password'])){
                self::$redis->auth($config['password']);
            }
            if (!empty($config['prefix'])) {
                self::$redis->setOption(\Redis::OPT_PREFIX, $config['prefix']);
             }
        }
        return self::$redis;
    }

    //类中的方法只会有一个实例执行它
    public function test()
    {
        echo("单例模式设计成功");
    }


}

删除指定前缀的所有redis的key

$redis = RedisCache::get_instance();
$key1 = $redis->keys('test_*');//查找所有以test_开头的redis的keys
 $key2 =  $redis->keys('*login:id:*'); //查找所有包含‘login:id:’字符的keys
 $redis->del($key1); //删除所有以test_开头的redis的keys 

命令行删除redis的key

redis -p 6379 -a 密码 keys ‘test_*’ | xargs redis -p 6379 -a 密码 del

发表评论

电子邮件地址不会被公开。 必填项已用*标注