redis day02 下
位图:是二进制数据(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 下的更多相关文章
- redis windows下的环境搭建
先说下安装吧!感觉这东西跟mongodb差不多,安装和布置挺简单,下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,一个是32位的, ...
- 转:redis windows下的环境搭建
原文来自于:http://www.2cto.com/os/201204/125971.html 下载地址:https://github.com/dmajkic/redis/downloads 下载 ...
- Redis Windows下安装方法
一.安装 首先在网上下载Redis,下载地址:https://github.com/MicrosoftArchive/redis/releases 根据电脑系统的实际情况选择32位还是64位,在这里我 ...
- 信步漫谈之Redis—Linux下环境搭建
一.环境 Linux 系统:Suse11(SLES-11-SP3-DVD-x86_64-GM-DVD1)Redis 安装包:redis-4.0.11.tar.gz 下载地址:http://d ...
- [redis] mac下redis安装、设置、启动停止
From: https://www.cnblogs.com/shoren/p/redis.html 下载安装 需要下载release版本,下载地址: http://download.redis.io/ ...
- 【原】Redis windows下的环境搭建
下载地址:https://github.com/dmajkic/redis/downloads 下载下来的包里有两个,一个是32位的,一个是64位的.根据自己的实情情况选择,我的是64bit,把这个文 ...
- redis linux下的开机启动
redis linux下的环境搭建 http://www.cnblogs.com/zsg88/p/8321644.html 安装完redis-4.0.1后设置linux开机自启动. 1.在re ...
- Redis linux 下安装
Redis linux 下安装 下载Redis安装包,可以从Redis中文网站中下载 下载地址:http://www.redis.cn/download.html Redis4.0 稳定版本 使用&l ...
- Redis linux 下安装 及扩展配置
1.首先在/usr/local/ 创建文件夹 reids Cd /usr/local/ mkdir redis 2.把redis安装包放在redis目录下面进行解压phpredis-2.2.4.tar ...
随机推荐
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring基于Annotation装配Bean
在 Spring 中,尽管使用 XML 配置文件可以实现 Bean 的装配工作,但如果应用中 Bean 的数量较多,会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难. Java 从 J ...
- part10 header界面渐隐渐显 //动态路由//项目动画
两个组件只同时显示一个 可以用 a v-show='variable' b: v-show='!variable' 1.对全局事件的解绑 //代码容易出现大量bug 因为影响其他组件 keep-al ...
- Python之路,Day1 - Python基础1 介绍、基本语法、流程控制
本节内容 1.python介绍 2.发展史 3.python 2.x or python 3.x ? 4.python 安装 5.第一个程序 Hello World 程序 6.变量 7.用户输入 8. ...
- dp--分组背包 P1757 通天之分组背包
题目背景 直达通天路·小A历险记第二篇 题目描述 自01背包问世之后,小A对此深感兴趣.一天,小A去远游,却发现他的背包不同于01背包,他的物品大致可分为k组,每组中的物品相互冲突,现在,他想知道最大 ...
- 沙龙报名 | 京东云DevOps——自动化运维技术实践
随着互联网技术的发展,越来越多企业开始认识DevOps重要性,在企业内部推进实施DevOps,期望获得更好的软件质量,缩短软件开发生命周期,提高服务稳定性.但在DevOps 的实施与落地的过程中,或多 ...
- windows下关闭自动更新方法
第一种方法: 1.windows+R键打开运行窗口,输入services.msc 2.找到windows update服务右键属性 第二种方法 Win键+R键在弹出的运行对话框中输入gpedit.ms ...
- VNC viewer 无法打开oracle 11g图形界面方案
VNC viewer 无法打开oracle 11g图形界面方案 1.检查交换空间失败 检查交换空间:可用的交换空间为35MB,所需的交换空间为150MB.未通过 创建swapfile: root权限下 ...
- Okhttp 多次调用同一个方法出现错误java.net.SocketException: Socket closed
Okhttp 多次调用同一个方法出现错误java.net.SocketException: Socket closed https://blog.csdn.net/QQiqq1314/article/ ...
- python刷LeetCode:5. 最长回文子串
难度等级:中等 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: "bab& ...
- Linux(CENTOS7) Redis安装
1.下载redis 在disk目录下,输入以下命令进行下载: wget http://download.redis.io/releases/redis-2.8.3.tar.gz 2.解 ...