redis删除hash的实现方式

目录
  • redis删除hash方式
  • redis之hash类型
    • redis中存取hash类型
    • 常用命令
    • hash命令小结
  • 总结

redis删除hash方式

在工作中遇到删除hash类型的缓存时遇到了,怎样也删不掉redis里面的缓存,后来发现,hash类型和string类型的换成删除方式不一样,所以在这里做一下整理,后面再有遇到其他类型的,还会陆续的完善。

详细如下:

针对hash类型的缓存删除,函数:

因为需要删除很多缓存内容,所以在common.php写的公共函数进行调用,

function processredis($type,$id=false,$code=false){
        #这里的$type就是标识需要删除哪一块的缓存类型,根据这个类型删除相应的缓存内容。

        if($type==1){
                #hash类型

                $XXXXXheart = $id;
                if($XXXXXheart ){
                    $key        = "{$XXXXXheart }";
                    $redisXXXid = $redisModel->hashDel("XXXXXX:XXXXXXX:XXXXX",$key);
                }

        }elseif($type == 2) {
                #string类型缓存
                $chNum = $id;
                if($chNum != null){
                    $key        = "XXXXX:XXXXX:XXXX:".$chNum ;
                    $redisXXXXid = $redisModel->delete($key);
                }
       }

}

redis之hash类型

redis中存取hash类型

Hash类型保存的值是一个map集合,又因为redis是key-value类型,故hash类型在redis中是key - map,即key - <field,value>。

Map的特点是存储键值对,也是无序不可重复的。

常用命令

(1)将键值对存入hash中:hset key field value

  • 如果key是不存在的,会新建一个hash集。
  • 如果field是hash中不存在,就加入该键值对。
  • 如果field在hash中已经存在,就覆盖原来的值。

返回值:返回1表示field在hash中不存在,返回0表所示已经存在。

(2)获取指定hash集中该field的关联值:hget key field

(3)存入多个值:hmset key field value [field value …]

取出多个值:hmget key field [field…]

(4)获取hash集中所有的字段和值:hgetall key

显然:返回的长度是原hash集长度的2倍。

(5)删除hash中的值:hdel key field [field…]

如果field有不存在的,就忽略该field,继续执行。

返回值:实际删除元素的个数,不包括那些忽略的。

(6)获取hash集中元素的个数:hlen key

(7)判断hash中是否存在指定字段:hexists key field

返回值:1表示存在该字段,0表示该字段不存在,或者key不存在。

(8)获取hash集中所有的字段名:hkeys key

获取hash集中所有的值:hvals key

(9)hash集中指定字段值增加步长:hincrby key field i

返回值:执行成功后字段的值。

  • 如果key哈希集不存在,则新建一个hash集,并把field的值置为0,再执行。
  • 如果key存在,但field不存在,field也默认置为0。

(10)hash集中指定字段值增加float型步长:hIncrByFloat key field f

如果field的值类型不是String,或者增加的值f不能转为浮点型,都会报错。

(11)当不存在指定字段时才赋值:hsetnx key field value

如果key不存在,会创建一个新的hash集。

返回值:1表示字段是个新的字段,成功赋值。0表示字段已存在,不执行操作。

hash命令小结

增:

  • Hset key field value
  • Hmset key field value [field value …]
  • Hsetnx key field value

删:

  • Hdel key field [field…]

查:

  • Hget key field
  • Hmget key field [field…]
  • Hgetall key
  • Hexists key field
  • Hkeys key
  • Hvals key

改:无

其他:

  • Hincrby key field i
  • HincrbyFloat key field f

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • redis中hash表内容删除的方法代码

    hash: Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个hash可以存储 232 - 1键值对(40多亿). 实例: 127.0.0.1:6379> HMSET runoobkey name "redis tutorial" description "redis basic commands for caching" likes 20 visitors 23000 OK 127.

  • 解决Java Redis删除HashMap中的key踩到的坑

    现象 Java使用Redis删除HashMap中的key时,取出对应的HashMap后通过Java中HashMap的remove方法移除key然后重新调用redis的Hmset方法将覆盖无效 示例代码 //通过key取出对应的HashMap Map<String, String> ruleMap = jedisCluster.hgetAll("HashKey"); //通过java中移除HashMap中的Key ruleMap.remove("ruleA"

  • Redis分布式锁的实现方式(redis面试题)

    什么是分布式锁? 要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁.进程锁. 线程锁:主要用来给方法.代码块加锁.当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段.线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state). 进程锁:为了控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronize

  • redis中Hash字典操作的方法

    目录 1.Redis操作之Hash操作 redis hash字典操作 1.Redis操作之Hash操作 redis支持五大数据类型,只支持第一层,也就说字典的value值,必须是字符串 如果value值想存字典,必须用json转换一下,转成字符串 redis hash字典操作 reids:{ k1:'dafdadfasf', m1:{ 'key2':value2, 'key1':value1, } } 1.hset(name, key, value),插入值 # name对应的hash中设置一个

  • Go结合Redis用最简单的方式实现分布式锁

    目录 前言 单Redis实例场景 加解锁示例 小结 多Redis实例场景 加解锁示例 小结 总结 前言 在项目中我们经常有需要使用分布式锁的场景,而Redis是实现分布式锁最常见的一种方式,并且我们也都希望能够把代码写得简单一点,所以今天我们尽量用最简单的方式来实现. 下面的代码使用go-redis客户端和gofakeit,参考和引用了Redis官方文章 单Redis实例场景 如果熟悉Redis的命令,可能会马上想到使用Redis的set if not exists操作来实现,并且现在标准的实现

  • Redis删除策略的三种方法及逐出算法

    目录 一.前言 二.Redis中的数据特征 三.时效性数据储存结构 四.数据删除策略 1.定时删除 2.惰性删除 3.定期删除 五.删除策略对比 六.逐出算法 1.概念引入 2.八种配置 一.前言 在文章开始之前,我先问大家一个问题:当我们使用指令:expire key second给一个key设置过期时间,过期时间一到,这个key对应的过期数据真的被服务器立即删除了吗?答案是并不会立即删除.知道了这个答案,就来看看Redis中如何处理过期的数据. 二.Redis中的数据特征 Redis是一种内

  • python redis 删除key脚本的实例

    单机模式 代码片段 安装 pip install redis import redis r = redis.Redis(host='192.168.1.3', port=6188,db=0,decode_responses=True) list_keys = r.keys("DEMO_xx_*") for key in list_keys: r.delete(key) 集群模式 代码片段 安装 pip install redis-py-cluster from rediscluster

  • 浅谈redis加锁常用几种方式

    一.incr加锁 <?php $redis = new Redis(); $redis->connect('127.0.0.1'); $redis->multi(); $redis->incr('number'); //$redis->decr('number'); //$redis->expire('number', -1); var_dump($redis->get('number')); var_dump($redis->ttl('number'));

  • redis三种高可用方式部署的实现

    前言 一.主从复制 概念 和mysql的主从复制一样 都是将服务器的数据复制到另一个数据库中 发送的称为master 接受的叫slave 数据为单向传输 只可以主到从 每台Redis服务器都是主节点:且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点. 作用 数据冗余 实现了数据的热备份,是持久化之外的一种数据冗余方式 故障切换 当主节点宕机或者出现错误时 由从服务器来提供服务 实现故障切换 负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,由从节点提供

  • redis删除指定key的实现步骤

    1.打开redis目录并打开redis-cli.exe 如果直接输入get key会出现以下问题,表示需要认证,也就是需要登录用户 使用auth password登录即可 然后使用get key获取键的值 确认后,使用del key删除键中的值,可多个删除 到此这篇关于redis删除指定key的实现步骤的文章就介绍到这了,更多相关redis删除指定key内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • Python3列表删除的三种方式实现

    目录 1. 删除列表(list)的三种方式 (1).按照元素删除—remove() (2).按照索引删除—pop() (3).按照索引删除—del() 2. 删除元素引发的思考 (1).事故发生现场 (2).列表----正序遍历的过程分析 (3).列表----倒序遍历的过程分析 3. 删除列表中重复的元素 (1).根据索引删除—(如上倒序的方式) (2).根据元素删除—(结果正确,但是过程是错误) 1. 删除列表(list)的三种方式 (1).按照元素删除—remove() 直接删除具体某个元素

随机推荐

其他