php操作redis--集合(set储存、增加、删除)篇
常用函数:sAdd,sMembers,sPop,sUnion等应用场景:与list类型类似,是一个列表的功能,不同的是set可以自动排重,提供了一个判断某一个成员是否存在一个set集合内的重要接口。连接$redis = new Redis();$redis->connect('127.0.0.1','6379');添加:成功返回1,存在相同的值返回0echo $redis->sAdd(
//写入
$redis->set("serviceListId",'1111');
//读出
$serviceListId = $redis->get("serviceListId");
//先清除之前的数据
$redis->flushAll();
使用文档:https://www.daixiaorui.com/manual/redis-set.html
set只能写入字符串,不能写入数组,如果要写入数组需要转为JSON格式
常用函数:sAdd,sMembers,sPop,sUnion等
应用场景:与list类型类似,是一个列表的功能,不同的是set可以自动排重,提供了一个判断某一个成员是否存在一个set集合内的重要接口。
连接
$redis = new Redis();
$redis->connect('127.0.0.1','6379');
添加:成功返回1,存在相同的值返回0
echo $redis->sAdd('set','cat'); //1
echo $redis->sAdd('set','cat'); //0
echo $redis->sAdd('set','dog'); //1
查看集合中的所有元素
print_r($redis->sMembers('set')); //Array ( [0] => cat [1] => dog )
判断元素是否是集合的成员
var_dump($redis->sIsMember('set','dog')); //boolean true
查看集合中成员的数量
echo $redis->sCard('set'); //2
删除缓存
$redis->del("名称");
//DEL
# 情况1: 删除单个key
$redis->set('myname','ikodota');
echo $redis->get('myname').'<br>'; # 返回:ikodota
$redis->del('myname');# 返回 TRUE(1)
var_dump($redis->get('myname')); # 返回 bool(false)
# 情况2: 删除一个不存在的key
if(!$redis->exists('fake_key')) # 不存在
var_dump($redis->del('fake_key')); # 返回 int(0)
# 情况3: 同时删除多个key
$array_mset=array('first_key'=>'first_val',
'second_key'=>'second_val',
'third_key'=>'third_val');
$redis->mset($array_mset); #用MSET一次储存多个值
$array_mget=array('first_key','second_key','third_key');
var_dump($redis->mget($array_mget)); #一次返回多个值 //array(3) { [0]=> string(9) "first_val" [1]=> string(10) "second_val" [2]=> string(9) "third_val" }
$redis->del($array_mget); #同时删除多个key
var_dump($redis->mget($array_mget)); #返回 array(3) { [0]=> bool(false) [1]=> bool(false) [2]=> bool(false) }
删除集合中指定值的元素
echo $redis->sRem('set','dog'); //1
移除并返回集合中的一个随机元素
echo $redis->sPop('set'); //cat
拓展:
假设有两个集合并存在交集,set1,set2
返回集合的交集
print_r($redis->sInter('set1','set2'));
把交集放到一个集合里
$redis->sInterStore('output','set1','set2');
返回集合的并集
print_r($redis->sUnion('set1','set2'));
把并集放到一个集合里
$redis->sUnionStore('output2','set1','set2');
返回集合的差集
print_r($redis->sDiff('set1','set2'));
把并集放到一个集合里
$redis->sDiffStore('output3','set1','set2');
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)