例如:
user:1 name "zhangsan" user:1 num "001" user:2 name "lisi" user:2 num "002" user:3 name "wang" user:3 num "003"
在不指定user:1的情况下删除第一条域user:1。其实需求类似list中的lpop,但是还是现在需要hash这种数据结构来记录id。
认证高级PHP讲师
hash结构是没有顺序的,所以第一条是什么都不知道,何来的删除第一条,你所认为的第一条只是你插入的顺序中的第一条,但是很抱歉hash并不按你的插入顺序进行排序,所以你就算遍历hash也未必能够得到你想要的结果。如果希望遍历顺序保持与插入顺序一致,可使用list。你的需求可以通过两个结构来实现,一个list用于维护集合顺序,另一个hash用于保存k-v数据,删除时从list中pop出一个数据,然后到hash中根据key进行删除即可。
额,那只能hKeys去取出所有key值,然后在应用层去取出第一个key,然后hget同时hdel
哈希链表、//删除单个实体$redis->hDel('hashkey', 'key1');
//删除整个hash$redis->del('hashkey');
删除一个redis的key都是用del方法, 不管是string,hash,list,set等类型, 都一样,RPOP也可以取出来。
hash结构是没有顺序的,所以第一条是什么都不知道,何来的删除第一条,你所认为的第一条只是你插入的顺序中的第一条,但是很抱歉hash并不按你的插入顺序进行排序,所以你就算遍历hash也未必能够得到你想要的结果。
如果希望遍历顺序保持与插入顺序一致,可使用list。
你的需求可以通过两个结构来实现,一个list用于维护集合顺序,另一个hash用于保存k-v数据,删除时从list中pop出一个数据,然后到hash中根据key进行删除即可。
额,那只能hKeys去取出所有key值,然后在应用层去取出第一个key,然后hget同时hdel
哈希链表、//删除单个实体
$redis->hDel('hashkey', 'key1');
//删除整个hash
$redis->del('hashkey');
删除一个redis的key都是用del方法, 不管是string,hash,list,set等类型, 都一样,RPOP也可以取出来。