首页 > 数据库 >2.3 RedisAPI之hash

2.3 RedisAPI之hash

时间:2022-10-24 21:35:16浏览次数:50  
标签:hash 复杂度 value field videoInfo key 2.3 RedisAPI 对应


1.简介
字符串键值结构(key field value)

2.命令

  • 设置key对应的field的value
hset key field value

时间复杂度为O(1)

  • 获取key对应的field的value
hget key field value

时间复杂度为O(1)

  • 获取key对应的所有field
hkeys key

时间复杂度为O(n)

  • 返回key对应所有field的value
hvals key

时间复杂度为O(n)

  • 返回key对应的所有field和value
hgetall key

时间复杂度为O(n)

  • 删除key对应的field的value
hdel key field

时间复杂度为O(1)

  • 判断key是否有field字段
hexists key field

时间复杂度为O(1)

  • 获取key的field数量
hlen key

时间复杂度为O(1)

3.实战
(1).使用场景
缓存视频的基本信息(数据源在MySql中)。

(2).缓存步骤

  • 定义key
  • 从Redis中获取key对应的value
  • 如果value为空,则去MySql中获取视频的基本信息,然后缓存在Redis中,如果value不为空则直接返回视频基本信息给用户

(3).伪代码

public VideoInfo get(int id){
String redisKey = redisPrefix + id;
Map<String,Sting> hashMap = redis.hgetAll(redisKey);
VideoInfo videoInfo = transferMapToVideo(hashMap);
if(videoInfo == null){
videoInfo = mysql.get(id);
if(videoInfo != null){
redis.hmset(redisKey,transferVideoToMap(videoInfo));
}
}
return videoInfo;
}


标签:hash,复杂度,value,field,videoInfo,key,2.3,RedisAPI,对应
From: https://blog.51cto.com/u_15843693/5791303

相关文章

  • 2.2 RedisAPI之string
    1.简介字符串键值结构(keyvalue)value的值小于512m,一般建议一个key-value的大小为100k使用场景缓存计数器分布式锁2.命令设置key-value不管key是否存在都设置setkeyvalue......
  • 2.1 RedisAPI之简介
    1.通用命令遍历所有keykeys*keys命令一般不在生产环境使用,主要原因是生产环境下通常有大量的key,列出所有key没有实际的意义并且会消耗很多内存资源。删除指定keydelkey计......
  • currenthashmap(currenthashmap和hashmap的区别)
    concurrenthashmap的读是否要加锁,为什么有并发访问的时候用ConcurrentHashMap,效率比用锁的HashMap好功能上可以,但是毕竟ConcurrentHashMap这种数据结构要复杂些,如果能保证只......
  • BZOJ 4373(算术天才⑨与等差数列-线段树+hash)
    Description算术天才⑨非常喜欢和等差数列玩耍。有一天,他给了你一个长度为n的序列,其中第i个数为a[i]。他想考考你,每次他会给出询问l,r,k,问区间[l,r]内的数从小到大排序......
  • HashSet集合 Array sort方法 学习 剑指offer 练习1
    HashSet集合是基于HashMap来实现的,不允许有重复的元素        允许有NULL值 无序,不会记录插入的顺序HashSet实例化对象  HashSet<Strin......
  • CF 869E(The Untended Antiquity-Hash值维护连通性)
    一个地图,然后三种操作1.一个矩阵四周加上障碍(不与任何障碍相交)2.一个矩阵四周的障碍消除3.问你两个点之间是否纯在一条路径不经过障碍矩阵大小2500^2,操作10w树状......
  • hash 表
    Hash表1E5个数,数据范围在1E-9到1E9,需要查找某个数,Hash表用接近O(1)的时间办到,进行映射,取模,映射到某个数,模谁呢,这个数一般是比较大的质数,这样矛盾的概率就比较小。拉链法......
  • java基础HashSet 集合TreeSet集合
           ......
  • 今天聊下Java中的HashMap---Java中用的就很多的集合框架
    先说下HashMap的定义HashMap是一个散列表,存储的内容是键值对(key-value)映射。HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键......
  • HashMap 源码分析(五)
    ......