位图:是二进制数据(0101101010)2^32

强势点:

  01_login :101110(比如:第一天登录,二天没登录)

  

  传统的字符串解决方案中 记录用户登录日期  统计堪忧

  01_login_20200206:  1

  01_login_20200207:  0

  

  传统的list解决方案中 统计堪忧,查找堪忧

  01_login :[20200206, 20200208](统计那天登录了)

SETBIT kk3 8 1(第8位是1,其他为0)

00000001

Hash散列数据类型(field和value必须是字符串类型)

字段和value      hk   {'age':18,'gemder':'male'}

优点:

1,特定条件下节约内存空间 满足两个条件才能节约 [1,字段小于512个,2:value不能超64个字节]--zipmap

2,可按需获取字段的值

hk 200 field  可精确查找具体的字段,如 age

传统方案:

python  准备一个200字段的字典  用 redis string  :json.dumps(字典)  r.set('pyd',d)

缺点:

1,不能让hash每一个field设置过期,  hk:{'age':18},只能对hk设置

2,存储消耗大于字符串结构

Redus--hash原理

hash是无序的

redis是二维的,当你存一个key的时候,是一个一维数组(0,1,2,3,4)

数组 =( 0,1,2,3,4)

数组 = (guwenyuan,1,2,3,4)

1)hest h1 username guwenyuan  插入姓名

1,hash(username)% 5 = 0(比如等于0) 就到数组中的 0位置、

数组 = (guwenyuan,1,2,3,4)

2,  hash(username)%5 =0(比如这个也等于0)

age = 18  姓名和年龄的位置为一致的就是hash碰撞

哈希碰撞:两个字段的哈希值对应的存储空间索引位置冲突,即为哈希碰撞

哈希碰撞解决方案:在当前位置下方开辟存储空间,进行存储 --单链法

3,扩容 - 当一维存储位置不够时,要进行扩容

redis出发扩容条件  当总字段个数等于一维数组的长度是,开始扩容

4,redis-渐进式的扩容 - 一次只迁一丢丢    保留两份数据,新旧两份数据,

哈希的应用场景

redis day02 下的更多相关文章

  1. redis windows下的环境搭建

    先说下安装吧!感觉这东西跟mongodb差不多,安装和布置挺简单,下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,一个是32位的, ...

  2. 转:redis windows下的环境搭建

    原文来自于:http://www.2cto.com/os/201204/125971.html   下载地址:https://github.com/dmajkic/redis/downloads 下载 ...

  3. Redis Windows下安装方法

    一.安装 首先在网上下载Redis,下载地址:https://github.com/MicrosoftArchive/redis/releases 根据电脑系统的实际情况选择32位还是64位,在这里我 ...

  4. 信步漫谈之Redis—Linux下环境搭建

    一.环境 Linux 系统:Suse11(SLES-11-SP3-DVD-x86_64-GM-DVD1)Redis 安装包:redis-4.0.11.tar.gz      下载地址:http://d ...

  5. [redis] mac下redis安装、设置、启动停止

    From: https://www.cnblogs.com/shoren/p/redis.html 下载安装 需要下载release版本,下载地址: http://download.redis.io/ ...

  6. 【原】Redis windows下的环境搭建

    下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,一个是32位的,一个是64位的.根据自己的实情情况选择,我的是64bit,把这个文 ...

  7. redis linux下的开机启动

    redis linux下的环境搭建  http://www.cnblogs.com/zsg88/p/8321644.html 安装完redis-4.0.1后设置linux开机自启动.    1.在re ...

  8. Redis linux 下安装

    Redis linux 下安装 下载Redis安装包,可以从Redis中文网站中下载 下载地址:http://www.redis.cn/download.html Redis4.0 稳定版本 使用&l ...

  9. Redis linux 下安装 及扩展配置

    1.首先在/usr/local/ 创建文件夹 reids Cd /usr/local/ mkdir redis 2.把redis安装包放在redis目录下面进行解压phpredis-2.2.4.tar ...

随机推荐

  1. Essay写作的六大黄金法则以及四大禁区

    虽然Essay这么难写,但是,也有一些可以拿高分的准则,本文小编就为大家分享高分Essay写作必知黄金法则,希望对想要在Essay拿高分的留学生小伙伴们有些帮助. 黄金法则1.关注相关问题的重点词汇 ...

  2. idea以yarn-client 提交任务到yarn

    鉴于很多小白经常问我如何用idea提交任务到yarn,这样测试的时候不用频繁打包. 昨天,晚上健身回来录了一个小视频,说是小视频但是耗时也比较长,将近40min.可能是健身脱水太多,忘了补充盐分,无力 ...

  3. vue知识点散记

    1.iphone5微信浏览器里的methods里貌似不兼容  test(){} 写法,只支持test:function(){} 2.v-cloak 防止双括号的闪烁 <div id=" ...

  4. kubelet组件详解---链接

    https://blog.csdn.net/jettery/article/details/78891733

  5. Win10 MySQL5.7中文乱码问题

    https://blog.csdn.net/hh___56789/article/details/87900923 最好把 utf8 都换成utf8mb4 ,以免以后遇到意想不到的错误.utf8有漏洞 ...

  6. Shell脚本exit用法与区别

    在Shell脚本中,往往会遇到一些判断类型为某个值不符合预期值的时候就退出主脚本/当前脚本/当前函数,那么Exit与return的用法与区别是什么呢? 下面先使用Exit举个简单例子,脚本内容如下 # ...

  7. 【每日Scrum】第三天冲刺

    一.计划会议内容 登录和个人主界面开发布局实现. 二.任务看板 三.scrum讨论照片 四.产品的状态 登录与个人界面布局实现 五.任务燃尽图  

  8. vi粘贴代码后格式混乱的问题

    最近在远程终端使用vi发现从其他地方复制代码的后,粘贴到vi里面出现格式变乱的问题. 主要是因为终端通常无法区分输入是来自用户输入还是来自粘贴,所以终端也不能通知 vim 输入来自何处.在 vim 里 ...

  9. Django2.0——模板渲染(一)

    在前面的介绍中我们都是用简单的 django.http.HttpResponse来把内容显示到网页上,本节将讲解如何使用渲染模板的方法来显示内容,即调用精美的HTML页面.模板的创建既可以在项目下创建 ...

  10. 18 11 07 pygame 继续使用

    ---恢复内容开始--- 1  给原来的游戏不定时  增加一些敌机  用到了pygame的定时器    定时器就是每隔一段时间  就进行一次相同的操作 2 pyagame 在捕获键盘操作有两种 1  ...