hash

  1. Redis中的hash是一个键值对集合
  2. 同时又是一个string类型的field和value的映射表,hash特别适合用于存储对象
  3. 类似于java里面的Map<String,Object>

问题:如果有一个Javabean对象,在Redis中该如何存在

①用户id为key,value为Javabean序列化后的字符串

  缺点:每次修改用户的某个属性,先反序列化改好后再序列化回去,开销大

  

②用户id+属性名作为key,属性值作为value

  缺点:用户id数据冗余

  

③通过key(用户id)+field(属性标签)可以操作对应属性数据

  优点:不需要重复存储数据

     不会带来序列化和并发修改控制的问题

  

常用操作:

hset <key>  <field>  <value>

给<key>集合中的  <field>键赋值<value>

hget <key1>  <field>

从<key1>集合<field> 取出 value

hmset <key1>  <field1> <value1> <field2> <value2>...

批量设置hash的值

hexists key  <field>

查看哈希表 key 中,给定域 field 是否存在。

hkeys <key>

列出该hash集合的所有field

hvals <key>

列出该hash集合的所有value

hincrby <key> <field>  <increment>

为哈希表 key 中的域 field 的值加上增量 increment

hsetnx <key>  <field> <value>

将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在

Redis08——Redis五大数据类型 hash的更多相关文章

  1. Redis五大数据类型的常用操作

    在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...

  2. 一文搞定Redis五大数据类型及应用场景

    本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...

  3. redis 五大数据类型使用

    redis 五大数据类型使用 字符串str 单个值 127.0.0.1:6379> set name pp # 设置键值[O(1)] OK 127.0.0.1:6379> setex na ...

  4. 《Redis入门指南(第二版)》读书思考总结之Redis五大数据类型

    热身:系统级命令 1. 获得符合规则的键名列表 KEYS pattern 模式匹配 产品的缓存:product+"."+....;  => keys product* 订单的 ...

  5. Redis五大数据类型详解

    关于Redis的五大数据类型,它们分别为:String.List.Hash.Set.SortSet.本文将会从它的底层数据结构.常用操作命令.一些特点和实际应用这几个方面进行解析.对于数据结构的解析, ...

  6. redis五大数据类型以及常用操作命令

    Redis的五大数据类型 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意 ...

  7. 四:Redis五大数据类型

    Redis的五大数据类型 1.string(字符串) string是Redis最基本的类型,你可以理解成与menmcached一模一样的类型,一个key对应一个value string类型是二进制安全 ...

  8. Redis五大数据类型

    首先说明下,Redis是:单线程+多路IO复用技术!!! string set  >  key  +  zset          list hash 常用的几个命令: >keys * 查 ...

  9. 8、Redis五大数据类型---哈希(Hash)

    一.哈希(Hash)简介: Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis hash 是一个键值对集合. 二.常用命令 1.h ...

随机推荐

  1. Lodash是什么?

    lodash:是一个一致性.模块化.高性能的 JavaScript 实用工具库.(也就是相当于自己封装的私有方法) node里引入 // Load the full build. var _ = re ...

  2. C++->10.3.5.从键盘上输入职工的编号,从职工信息文件中查找该职工资料,查找成功时显示职工姓名、电话号码,邮政编码和地址。

    p=getchar(); }  printf("\n"); rewind(in);         //文件流指针移到文件开始位置 p=fgetc(in); while(!feof ...

  3. [PAT] A1021 Deepest Root

    [题目大意] 给出n个结点和n-1条边,问它们能否形成一棵n个结点的树,如果能,从中选出结点作为树根,使整棵树的高度最大.输出所有满足要求的可以作为树根的结点. [思路] 方法一:模拟. 1 连通.边 ...

  4. [CF1303A] Erasing Zeroes

    Solution 找到边界然后循环扫一遍数个数即可 #include <bits/stdc++.h> using namespace std; int n; const int N = 1 ...

  5. vue报错There are multiple modules with names that only differ in casing. This can lead to unexpected behavior when compiling on a filesystem with other case-semantic. Use equal casing. Compare these mod

    今天在开发一个新项目时,当安装完依赖包启动项目后报了一个这个错 There are multiple modules with names that only differ in casing.Thi ...

  6. 02:QT的第一个程序

    新建项目,有这么几个文件: main.cpp                      //一个main函数,作为应用程序的入口函数 mainwindow.cpp mainwindow.h untit ...

  7. contos7 用户管理相关操作命令

    # 查看用户列表 cut -d : -f 1 /etc/passwd # 查看可以登录系统的用户 cat /etc/passwd | grep -v /sbin/nologin | cut -d : ...

  8. the import javax.jms cannot be resolved问题

    JDK中并没有javax.jms包,你需要一个JMS实现(比如:activemq),并确认相应的jar被包含在CLASSPATH中. http://activemq.apache.org/ 5.5.0 ...

  9. Java并发,synchronized锁住的内容

    synchronized用在方法上锁住的是什么? 锁住的是当前对象的当前方法,会使得其他线程访问该对象的synchronized方法或者代码块阻塞,但并不会阻塞非synchronized方法. 脏读 ...

  10. 配置hosts快速访问GitHub

    经常要clone github中的一些项目,无奈如果不爬梯子的话速度实在是龟速,经常1k/s,于是搜了下解决方法,改HOSTS大法.Windows下在C:/Windows/system32/drive ...