redis字符串匹配_Redis的数据类型和抽象概念介绍
Redis 不是一个 简单的 key-value 存储,实际上它是一个数据结构服务器,它支持不同类型的值。也就是说,在传统的key-value存储中,你将一个字符串的key关联到一个字符串的值上;而在Redis中,值不仅仅局限于简单的字符串,还同时支持其他复杂的数据结构。以下的列表是所有Redis支持的数据结构,在这篇指南中将一一介绍:
- 二进制安全的字符串。
- 列表[Lists]: 按照插入顺序排序的字符串元素集合。它们基于链表实现。
- 集合[Sets]: 唯一的、无序的字符串元素集合。
- 有序集合[Sorted sets]: 与集合类似,但是其中的每一个字符串元素都关联了一个浮点数值,称之为[score]。这些元素都是按照这个score来进行排序,所以它与集合不同,
- 它可以获取一个元素范围(比如你可以说:给我最上面的10条数据,或者最下面的10条数据)。
- 哈希[Hashes]: 由字段及相关联的值组成的maps。字段和值都是字符串。这非常类似于Ruby或者Python中的哈希。
- 位数组(或者简单的bitmaps): 它可以使用特殊的命令,将字符串值处理为一个位的数组:你可以设置或者清空个别的位,统计所有设置为1的位,查找第一个设置或者没有设置的位等等。
- HyperLogLogs: 这是一个基于概率的数据结构,它用于估算一个集合中的基数。不用担心,它没有看起来那么难… 稍候会在后续的HyperLogLog章节中对其进行介绍。
这些数据类型如何工作,以及通过这些命令命令参考如何去解决已有的问题,通常并不是那么容易理解的。所以这篇文档是关于Redis数据类型以及很多常见模式的一个速成教程。
所有的示例我们都将使用redis-cli 工具,它是一个简单,易使用的命令行工具,用于向Redis服务器发送指令。
![](/assets/blank.gif)
Redis 的key
Redis 的key是二进制安全的,也就是说你可以使用任何二进制的序列作为key,从一个”foo”字符串到一个JPEG文件的内容都可以。空字符串也同样是一个有效的key。
一些其他的关于key的规则:
- 使用非常长的key并不是好的主意,例如使用一个1024字节(bytes)长度的key就很烂,其不仅仅耗费内存,而且在数据集中查找这个key时也需要很高的比较成本。即使当前处理的任务是匹配存在的大值,采用哈希来处理(例如使用SHA1) 会是一个更好的主意,特别是从内存和带宽的角度来看。
- 使用很短的key通常也不是一个好主意。将”u1000flw”作为一个key几乎是毫无意义的,如果你可以将其替换成”user:1000:followers”,则它会更具可读性,而由此增加的空间与key对象和值对象使用的空间比起来微乎其微。当简短的key将明显的消耗一小部分内存,你的工作就是寻找到一个正确的平衡点。
- 尝试去坚持一个模式。例如使用”object-type:id”做为key就是一个好的想法,像”user:1000″。点或者虚线经常被用作多单词字段的连接符,例如”comment:1234:reply.to”或”comment:1234:reply-to”。
- key最大可分配512MB。
![](/assets/blank.gif)
Redis 的字符串类型[Strings]
Redis字符串类型是你能够与一个Redis的key关联的最简单的值类型。它也是Memcached中唯一的数据类型,所以新手可以很自然的在Redis中使用它。
Redis的key是字符串的,我们同样可以使用字符串类型来做为值,我们是将一个字符串映射到另一个字符串上。字符串数据类型在很多场景下是很有用的, 例如缓存HTML片段或者页面。
关注我,后续更多干货奉上
redis字符串匹配_Redis的数据类型和抽象概念介绍相关推荐
- redis字符串匹配_Redis设计原理
1.简介 Redis中的每个Key-Value在内存中都会被划分成DictEntry.RedisObject以及具体对象,其中DictEntry又分别包含指向Key和Value的指针(以RedisOb ...
- Redis核心配置_Redis高级数据类型使用
Redis核心配置 服务端配置 daemonize yes|no //服务器是否已守护进程方式运行 bind 127.0.0.1 //绑定主机 port 6379 //设置端口 databases 1 ...
- Bailian2717 基本数据类型【字符串匹配】
2717:基本数据类型 总时间限制: 1000ms 内存限制: 65536kB 描述 对一个完整的编译通过的 C/C++ 程序源代码文件,试判断其中使用了哪些基本数据类型. 基本数据类型包括:char ...
- 数据结构-数组-字符串匹配:Knuth-Morris-Pratt算法(详解附完整代码)
字符串匹配 字符串抽象数据类型 字符串模式匹配 简单的字符串匹配 Knuth-Morris-Pratt算法 背景分析 失配函数 定义 实现方法 函数分析 KMP函数 实现方法 函数分析 失配信息的另一 ...
- 字符串匹配のKMP【专题@AbandonZHANG】
算法详解 很长时间内都没有能够很理解KMP算法的精髓,尤其是很多书上包括<算法导论>没有把next函数(亦或 π函数)讲解的很透彻. 今天去看了matrix67大牛博客中关于kmp部分的讲 ...
- Redis数据库(二)——数据类型
Redis数据库(二)--数据类型 一.String数据类型 1.set / get / append / strlen 2.incr / decr / incrby / decrby 3.getse ...
- Redis中三种特殊数据类型
本文来说下Redis中三种特殊数据类型 文章目录 Gerspatial地理位置 Hyperloglog基数统计 Bitmap位图 Gerspatial地理位置 一共 6 个命令: GEOADD GEO ...
- cell数组变为字符串_字符串匹配 ---- BM 算法原理
关于字符串匹配有很多算法, BF, BK, KMP, 但这些都不是这篇文章的重点. 文章的重点是另外一种更高效的算法 Boyer-Moore 算法, 一般文本编辑器中的查找功能都是基于它实现的. 前置 ...
- 字符串匹配のKMP【@Abandon】
算法详解 很长时间内都没有能够很理解KMP算法的精髓,尤其是很多书上包括<算法导论>没有把next函数(亦或 π函数)讲解的很透彻. 今天去看了matrix67大牛博客中关于kmp部分的讲 ...
最新文章
- Allan方差分析方法的直观理解
- 图像分段线性变化_暗光也清晰的图像增强算法
- win7(x64)安装oracle 10g 32位的方法
- 【第十一讲】TMS320F28335开发板之I2C模块
- 爬虫推特数据分析的外文文献_13天让你学会爬虫分布式,说到让你做到择推出it届附教程...
- Beginning SDL 2.0(4) YUV加载及渲染
- The Best Way to Unit Test in Android
- python面向对象编程第2版_python面向对象编程(2),之,二
- element UI表格使用cell-style改变单元格样式
- SQLite剖析之事务处理技术
- CentOS 关闭暂不需要的系统服务
- 耳挂式蓝牙耳机原理_专为运动而生的DOSS T63无线蓝牙耳挂式运动耳机
- android获取网络时间工具类,Android检测网络接口访问速度,ping接口获取访问时间平均值...
- Nacos注册中心AP架构源码(Distro)上篇
- 爬虫爬取知乎评论并利用flask框架做简单的可视化
- 52函数零点或方程根的个数讨论
- gif图片该怎么压缩?教你一招快速缩小gif体积的方法
- 异构 ? 系统差异应该成为过去式, 专注在应用和数据 - 异构平台整合策略之1 - SSSD
- 职教云python题和答案_智慧职教云课堂APPPython程序设计题库及答案
- alertdialog旋转屏幕消失造成leak window
热门文章
- torch中的copy()和clone()
- 如何写新的Python OP
- 深度学习点云语义分割:CVPR2019论文阅读
- CentOS7.4 安装mongodb
- python的 局部变量与全局变量
- TypeError: can only concatenate str (not “float“) to str
- Please do not register multiple Pages in pages/buildhelp/buildhelp.js
- Eclipse工具栏上android的机器人小图标和adt图片的显示
- android PhotoView的用法
- 简介SharePoint 2010 14 Hive文件夹