多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 一:连接redis ``` $redis = new Redis(); $redis->connect('127.0.0.1', 6379);//连接地址和端口 $redis->auth('mypassword');//连接密码 //查看服务是否运行 echo "Server is running: " . $redis->ping(); ``` ## 二:通用操作: ``` //设置缓存的过期时间为5秒 $redis->expire('key', 5); //删除缓存 $redis->del('key'); //可以传入数组 ['key1','key2'] 删除多个键 //判断缓存是否存在 $redis->exists('key'); //验证键是否存在,存在返回true //获取缓存的有效时间,单位秒 $redis->ttl('key'); //key不存在返回-2,key永不过期返回-1 //移除 key 的过期时间,key 将持久保持。 $redis->persist('key'); //获取redis信息 $redis->info(); //获取所有的key $redis->keys('*') //可以模糊匹配 keys('goods*') 模糊匹配goods的key //获取值的类型 $redis->type('key') //查看当前数据库key的数量 $redis->dbSize(); ``` ## 二:常见String的操作 ``` //设置缓存 $redis->set('key','value'); //获取缓存 $redis->get('key''); //设置key的值同时设置缓存时间 $redis->setex('key', 3600, 'value') // 批量设置缓存 $redis->mset(['number' => 'value0', 'key' => 'value1']); //批量获取缓存,返回一个数组 $redis->mget(['number','key']); //当key不存在时再设置缓存,例如已经有了一个key为goods的缓存,使用setnx('goods','value')方法时将不再缓存 $redis->setnx('key','value'); //批量设置缓存,使用setnx()方法批量操作 $redis->msetnx(['key0' => 'value0', 'key1' => 'value1']); //自增 $redis->incr('number'); //键值加1 //键值加10 $redis->incrby('number',10); //自减 $redis->decr('number'); //键值减1 //键值减10 $redis->decrBy('number',10); //追加值,例如原有值是hello,追加后变成hello-world $redis->append('key', '-world'); //获取key的长度 $redis->strlen('key'); //截取缓存的值 $redis->getRange('key', 0, 5); // 键值截取从0位置开始到5位置结束                            ``` ## 三:常见List的操作 ``` //向列表左边添加一个元素,返回链表长度 $redis->lpush('list', 'javasrcipt'); $redis->lpush('list', 'html'); $redis->lpush('list', 'css'); $redis->lpush('list', 'php'); //获取列表所有值 $list = $redis->lrange('list', 0, -1); ["php","css","javasrcipt "] //从左边删除一个 $redis->lpop('list'); //获取列表所有值 $list = $redis->lrange('list', 0, -1); ["css","html","javasrcipt "] //向列表右边添加一个元素,返回链表长度 $redis->rpush('rlist', 'python'); $redis->rpush('rlist', 'go'); $redis->rpush('rlist', 'node'); //获取列表所有值 $list = $redis->lrange('list', 0, -1); ["python","go","node"] //从右边删除一个 $redis->rpop('rlist'); //获取列表所有值 $list = $redis->lrange('list', 0, -1); ["css","html","javasrcipt "] //通过下标修改元素的值 $redis->lset('list', 0, 'newV3'); ``` ## 三:常见 Hash的操作 ``` // 缓存订单数据 $redis->hset('order', 'order_key', 'D2022401086'); $redis->hset('order', 'create_time', '20224010618'); $redis->hset('order', 'product_name', '衣服'); $redis->hset('order', 'price', '100'); //还可以批量缓存一个hash,比如缓存一个用户数据 $user = [ 'id'=> 1, 'name' => 'itbsl', 'age' => 25, 'email' => 'itbsl@gmail.com', 'address' => '北京朝阳区大望路' ]; $redis->hmset('user', $user); //获取user的name字段 $redis->hget('user','name'); //获取一个hash中所有的key和value $redis->hgetall('order'); ["order_key" => "D2022401086" ,"create_time" => "product_name" => "衣服", "price" => 100 ] //获取一个hash中所有的key $redis->hkeys('order'); ["order_key","create_time","product_name","price"] //获取hash缓存的值 $redis->hvals('order'); ["D2022401086","20224010618","衣服","100"] //获取一个hash中key的数量 $redis->hlen('order'); //删除hash中一个key 如果表不存在或key不存在则返回false $redis->hdel('order', 'product_name'); //类似unset($order['product_name']) ``` ## 四:常见Set的操作 ``` //添加 $redis->sadd('team', 'kobe'); $redis->sadd('team', 'jordan'); $redis->sadd('team', 'curry'); $redis->sadd('team', 'kobe');//由于kobe已经被添加到team集合中,所以重复添加是无效的 //获取值 $redis->smembers('set'); ["kobe","jordan","curry"] //删除指定的值 $redis->srem('team', 'kobe', 'curry'); ["jordan"] //查看集合中成员的数量 $redis->scard('team'); //计算两个集合的交集 $redis->sinter('set1', 'set2') //计算两个集合的并集 $redis->sunion('set1', 'set2') //计算两个集合的差集 $redis->sdiff('set1', 'set2') ``` ## 四:常见ZSet的操作 ``` //添加 $redis->zadd('set', 1, 'cat'); $redis->zadd('set', 2, 'dog'); $redis->zadd('set', 3, 'fish'); //获取所有值 $redis->zrange('set', 0, -1); ["cat","dog","fish"] //获取分值(score)最大的三位,可以用作点击率(score)最高的使用场景 $redis->zRevRange('set', 0, 2, true); //获取score在[40, 90]之间的元素,按照score从小到大排序 $redis->zRangeByScore('set', 40, 90); //返回元素的score值 $redis->zscore('set', 'dog'); //2 //查看集合中成员的数量 $redis->zcard('set'); //3 //获取分值在[50,90]的元素的数量 $count = $redis->zCount('zSet', 50, 90); //删除指定成员 $redis->zrem('set', 'cat'); //删除score在[40, 70]之间的元素 $redis->zRemRangeByScore('set', 40, 70); ```