redis的php使用中的语法

<?php
namespace app\index\controller;
use think\db;
use think\facade\Cache as Ca;
use think\Controller;
use think\cache\driver\Redis;
use app\index\comment\Useredis;

class Myredis extends Controller
{
private static $redis;
//链接redis
private static function redis()
{
if(!self::$redis){
self::$redis = new Redis();
self::$redis -> connect('127.0.0.1','6379');
 }
return self::$redis;
}



public function useredis()
{

//1 字符串的使用
self::redis()->set('keyss','99999999');
//设置过期时间
self::redis()->expire('keyss' ,86400);die;
//获得过期时间
self::redis()->ttl('keyss');
//获取键值
self::redis()->get('keyss');
//设置过期时间
//redis存数组和对象(注意数组需要转化)
$arr = array(1,2,3);
Useredis::set('arr',$arr);
Useredis::get('arr');

//2 哈希hset的使用
self::redis()->hSet('jishao','name','马雪剑');
self::redis()->hSet('jishao','exe',1);
self::redis()->hSet('jishao','age',24);
//哈希类型 hgetall的用法(获取key中的所有filed-vaule)
self::redis()->hGetAll('jishao');
//获取值
self::redis()->hget('jishao','name');
//哈希类型 hlen的用法(获取key所包含的field的数量)
self::redis()->hlen('jishao');

#3 list列表的使用
self::redis()->flushAll(); //清空所有数据
#从列表左边放入一个或者多个元素,不存在创建
self::redis()->lpush('list','1','2','3');
#当列表存在时,从左边放入一个元素,不存在时报错
self::redis()->lpushx('list','4');
#从列表右边放入一个或者多个元素,不存在创建
self::redis()->rpush('list','5');
#当列表存在时,从右边放入一个元素,不存在时报错
self::redis()->rpushx('list','6');
#根据索引获取列表中的元素,列表索引最后一个可以使用-1
self::redis()->lrange('list',0,-1);
self::redis()->lgetrange('list',0,-1);
#根据列表索引获取值
self::redis()->lindex('list',0);
self::redis()->lget('list',1);
#根据索引修改值
self::redis()->lset('list',0,'11');
#从列表左边删除一个元素
self::redis()->lpop('list');
#从列表右边删除一个元素
self::redis()->rpop('list');
#从list列表里移除前 2(count)次出现的值为 value 的元素
self::redis()->lremove('list','value',2);
#删除list列表右边的最后一个元素将其追加到list1列表,list1不存在会创建
self::redis()->rpoplpush('list','list1');
#根据索引start和stop保留列表元素,其他元素全删除
self::redis()->ltrim('list',1,2);
#获取列表长度
self::redis()->llen('list');

#4 集合set的操作(无绪集合)
#添加一个或多个元素到集合中
self::redis()->sadd('set','a','b','上海');
self::redis()->sadd('set1','f','k','上海');
#获取
#返回集合中所有的元素
self::redis()->smembers('set');
#获取两个或两个以上集合的交集
self::redis()->sinter('set','set1');
#获取两个或两个以上集合的并集
self::redis()->sunion('set','set1');
#获取两个或者两个以上集合的差集
self::redis()->sdiff('set','set1','set2');
#删除
#删除一个或多个集合中的元素
self::redis()->srem('set','a','b');
#随机移除一个元素,并返回移除的元素
self::redis()->spop('set');
#将set的一个元素(a)移动到set1集合中去
self::redis()->smove('set','set1','a');
#判断元素是否是在指定集合中
self::redis()->sismember('set','a');

#5 sortedset(有序集合)用法
//zadd增加的用法
self::redis()->zadd('myset', 2890, "计算机");
self::redis()->zadd('myset', 2990, "会计");
self::redis()->zadd('myset', 8000, "软件工程师");
self::redis()->zadd('myset', 1000, "文员");
self::redis()->zadd('myset', 2000, "运营助理");
//返回集合中的所有元素zrange
self::redis()->zrange('myset',0,-1);
//返回元素的score值
self::redis()->zscore('myset','文员');
//返回存储的个数zcard
self::redis()->zcard('myset');
//删除指定成员zrem
self::redis()->zrem('myset','文员');
//返回集合中介于min和max之间的值的个数zcount
self::redis()->zcount('myset',1000,8000);
//返回集合中指定区间内所有的值 倒叙zrevrange
self::redis()->zrevrange('myset',1000,8000);
//移除score值介于min和max之间的元素zrange
self::redis()->zrange('myset',0, -1, true);
//指定移除score之间的元素
self::redis()->zremrangebyscore('myset',2,3);

#6 key的通用操作
//指定删除哪个键
self::redis()->del('bwenum');
//判断key是否存在,1代表存在,0代表不存在
self::redis()->exists('key');
//rename为当前的key重命名
self::redis()->rename('keyss');
//expire key time:为key设置过期时间,单位秒
self::redis()->expire('keyss' ,86400);
//ttl key:获取该key所剩的超时时间,如果没有设置超时返回-1,如果返回-2表示超时了(不存在),如果没超时还存在则返回剩余时间
self::redis()->ttl('keyss');
//type key:获取指定key的类型,该命令将以字符串的格式返回。返回的字符串为string、list、set、hash和zset。如果key不存在返回none
self::redis()->type('keyss');

  }
}

posted @ 2022-04-20 14:35  无缺胜有缺  阅读(99)  评论(0)    收藏  举报