redis 的字符串和哈希对比

相同点和不同点
  • 相同点:

    • 首先是他们有很多效果类似的命令,比如set和hset,mset和hmset等等
    • 大多数情况下使用字符串存储的场景使用hash也可以实现。
  • 不同点
    • 他们的存储结构决定了他们有一些本质的差异
使用hash散列的优势
  • 使用hash可以将数据放在同一个地方方便管理,而不必用字符串将数据放在整个数据库,而且还可以避免误操作。
  • 使用hash散列既可以减少创建键的数量又可以避免键名冲突。
  • 使用hash散列比使用字符串键更节约内存。因为在数据库中创建key都有数据库附加的管理信息(比如键的类型,最后一次访问时间等等),所以keys越多,服务器在存储附加管理信息方面消耗的内存就越多,同时花在管理数据库中key的cu'p也会越多。而且redis本事也会对hash的存储做一些底层的优化,内存消耗更少。
特定情况下使用字符串
  • 使用过期功能

    • 因为redis的过期功能只能对键进行操作而不能对散列键的field进行操作。
  • 对二进制存储的命令
    - 因为redis目前只支持对字符串键进行setbit,getbit,bitop等二进制相关的命令操作。
所以在使用场景中使用字符串和hash都可以的情况下,尽量使用hash

redis--->字符串和哈希对比的更多相关文章

  1. Redis 字符串与哈希

    /*** * 字符串 redis里的字符串 ***/ //设置key的值 redis 127.0.0.1:6379> set key 'my name is imay' //设置值的过期时间 ( ...

  2. Redis入门(优势,环境,字符串,哈希,列表)

    Redis从它的许多竞争继承来的三个主要特点: Redis数据库完全在内存中,使用磁盘仅用于持久性. 相比许多键值数据存储,Redis拥有一套较为丰富的数据类型. Redis可以将数据复制到任意数量的 ...

  3. 峰Redis学习(3)Redis 数据结构(字符串、哈希)

    第一节:Redis 数据类型介绍 五种数据类型: 字符串(String) 字符串列表(list) 有序字符串集合(sorted set) 哈希(hash) 字符串集合(set)   第二节:Redis ...

  4. Redis与Memcached的实现对比

    原文链接:http://www.tuicool.com/articles/qUBNZva Memcached 与 Redis ,作为近些年最常用的缓存服务器,相信大家对它们再熟悉不过了.前两年还在学校 ...

  5. redis、memcached、mongoDB 对比与安装

    一.redis.memcached.mongoDB 对比 Memcached 和 Redis都是内存型数据库,数据保存在内存中,通过tcp直接存取,速度快,并发高.Mongodb是文档型的非关系型数据 ...

  6. Redis各种数据结构性能数据对比和性能优化实践

    很对不起大家,又是一篇乱序的文章,但是满满的干货,来源于实践,相信大家会有所收获.里面穿插一些感悟和生活故事,可以忽略不看.不过听大家普遍的反馈说这是其中最喜欢看的部分,好吧,就当学习之后轻松一下. ...

  7. Redis[三] @Hash 哈希

    Redis的哈希值是字符串字段和字符串值之间的映射,所以他们是表示对象的完美数据类型 在Redis中的哈希值,可存储超过400十亿键值对. redis 提供了2套操纵 一种是批量 一种是非批量 假设需 ...

  8. 第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型

    第二百九十六节,python操作redis缓存-Hash哈希类型,可以理解为字典类型 Hash操作,redis中Hash在内存中的存储格式如下图: hset(name, key, value)name ...

  9. Python操作redis系列以 哈希(Hash)命令详解(四)

    # -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ...

随机推荐

  1. docker.service 修改指南

    vi /lib/systemd/system/docker.service docker.service默认内容如下: [Unit] Description=Docker Application Co ...

  2. 三句话说清楚ssh端口转发

    看了下自己以前的笔记发现也没有完全搞清楚, 网上好多文章都是抄来抄去,远程端口转发全都是拿127.0.0.1举例 总结了下,三句话就可以讲清楚了   1 ssh本地端口转发是 把ssh服务器可以访问到 ...

  3. centos批量创建用户并发送邮件,(修订版)

    # cat user_create.sh echo -n "创建用户输入C,删除用户输入D!" read name function monitor() { if [ " ...

  4. 洛谷$P5330\ [SNOI2019]$数论 数论

    正解:数论 解题报告: 传送门$QwQ$ ,,,这题还蛮妙的$QwQ$(,,,其实所有数论题对我来说都挺妙的$kk$然后我真的好呆昂我理解了好久$QAQ$ 考虑先建$Q$个点,编号为$[0,Q)$,表 ...

  5. linux MySQL 5.7+keepalived 主备服务器自主切换

    一.环境准备1.关闭防火墙与selinux systemctl stop firewalld setenforce 0 sed -i 's/SELINUX=.*/SELINUX=disabled/g' ...

  6. 大数据学习之路-Centos6安装python3.5

    Centos 6.8安装python3.5.2 因为学习所需,需要用到python3.x的环境,目前Linux系统默认的版本都是python2.x的,还有一些自带的工具需要用到python2.6版本, ...

  7. 小米6X谷歌套件

    话不多说真机测试完美适配,安卓万物基于谷歌链接如下(个别MIUI版本不同谷歌商店会报错,如遇到请留言我会第一时间回复解决) 链接:https://pan.baidu.com/s/1b2Cs0u9J2b ...

  8. PPP协议 PAP认证

       

  9. EF 使用lambda表达式 更新一对多数据时报错

    1.需求  更新一对多表中的附表数据,表结构如下: 2.思路 个人觉得一个个去对比关联的附表数据是删除还是添加比较麻烦,就直接清空主表关联的附表,然后重新建立关联关系. 3.弊端 如果附表(前提是附表 ...

  10. Objectarx 相交矩形求并集 面域转多段线

    测试结果: 主要思路:拾取一个点作为矩形的插入点,分别以该点进行两次jig操作,就能得到白色的两个相交的polyline,之后需要变成红色的封闭多段线.做法就是:求出两个白色矩形的面域,然后通过boo ...