浅谈Redis数据类型
Redis有5种基本数据类型,分别为String(字符串),list(列表),hash(字典),set(集合),和zset(有序集合)。这5中数据类型的熟练使用,是Redis的相关知识中最基础,最重要的部分,也是Redis面试面试题中被问到最多的知识点。
在这里将带领Redis初学者快速掌握着5中数据类型,考虑到Redis的命令非常多,这里只选取最常见的进行讲解。
String(字符串)
字符串string是Redis中最简单的数据结构,他的内部标示的就是一个字符数组。Redis所有的数据结构都以唯一的key字符串作为名称,然后通过这个唯一的key值来获取对应value数据,不同的数据类型的差异就在于value的结构不一样。
字符串的结构使用的非常广泛,一个常见的用途就是缓存用户信息,我们将用户信息结构体使用JSON序列化成字符串,然后将序列化后的字符串塞进Redis来缓存。同样,取用户信息会经过一个反序列化的过程。
Redis的字符串是动态字符串,可以修改字符串,内部结构类似于Java的ArrayList,采用预分配的冗余空间的方式来减少内存分配的频率,内部为当前字符串分配的实际空间一般高于实际字符串长度,当字符串长度小于1MB时,扩容都是加倍现有的空间,如果字符串长度超过了1MB,扩容时一次只会多扩容1MB,需要注意的是字符串最大长度为412MB。
【键值对】
想当于字段的key和value,支持简单的正删改查的操作,下面代码中的“name”就是字典中的key,而value就是字符串 的“codehole”,一下是常用的命令整理
GET、SET | 最基本的命令 | 语法:GET key,SET key value value如果有空格需要双引号以示区分 |
INCR | 整数递增 | 语法:INCR key 默认值为0,所以首先执行命令得到 1 ,不是整型提示错误 |
INCRBY | 增加指定的整数 | 语法:INCRBY key increment |
DECR | 整数递减 | 语法:DECR key 默认值为0,所以首先执行命令得到 -1,不是整型提示错误 |
DECRBY | 减少指定的整数 | 语法:DECRBY key increment |
INCRBYFLOAT | 增加指定浮点数 | 语法:INCRBYFLOAT key increment 与INCR命令类似,只不过可以递增一个双精度浮点数 |
APPEND | 向尾部追加值 | 语法:APPEND key value redis客户端并不是输出追加后的字符串,而是输出字符串总长度 |
STRLEN | 获取字符串长度 | 语法:STRLEN key 如果键不存在返回0,注意如果有中文时,一个中文长度是3,redis是使用UTF-8编码中文的 |
MGET | 获取多个键值 | 语法:MGET key [key ...] 例如:MGET key1 key2 |
MSET | 设置多个键值 | 语法:MSET key value [key value ...] 例如:MSET key1 1 key2 "hello redis" |
GETBIT | 二进制指定位置值 |
语法:GETBIT key offset 例如:GETBIT key1 2 ,key1为hello 返回 1,返回的值只有0或1,当key不存在或超出实际长度时为0 |
SETBIT | 设置二进制位置值 | 语法:SETBIT key offset value ,返回该位置的旧值 |
BITCOUNT | 二进制是1的个数 | 语法:BITCOUNT key [start end] ,start 、end为开始和结束字节 |
BITOP | 位运算 | 语法:BITOP operation destkey key [key ...] ,operation支持AND、OR、XOR、NOT |
BITPOS | 偏移 | 语法:BITPOS key bit [start] [end] |
正在更新,未完待续。。。
浅谈Redis数据类型相关推荐
- python中判断列表数据类型_浅谈Python数据类型判断及列表脚本操作
数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...
- Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理
基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客 QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3 ...
- python数据类型转换原因_浅谈Python数据类型之间的转换
Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...
- python列表使用判断_浅谈Python数据类型判断及列表脚本操作
数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...
- python文本框与数据库的关联_Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理...
基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客 QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3. ...
- Redis设计与实现 -- 浅谈Redis持久化
在讲解Redis持久化相关的话题之前,我们需要了解的是Redis为什么这么快?也就是Redis的IO模型 – 多路复用. 我们一句话概括为什么Redis这么快: Redis是单线程的,使用多路复用的I ...
- 浅谈Redis的基本原理和数据类型结构的特性和应用开发场景
一.Redis介绍 1,redis介绍(Redis安装在磁盘:Redis数据存储在内存) redis是一种基于键值对(key-value)数据库,其中value可以为string.hash.list. ...
- 浅谈Redis及其安装配置
一.Redis的介绍 二.Redis的安装配置 三.Redis的配置文件说明 四.Redis的简单操作 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型. ...
- 浅谈Redis五种数据结构的底层原理
概念 Redis作为一个开源的用C编写的非关系型数据库,基于优秀的CRUD效率,常用于软件系统的缓存,其本身提供了以下五种数据格式: string:字符串 list:列表 hash:散列表 set:无 ...
最新文章
- Oracle 9i 从9.2.0.1升级到 9.2.0.6 步骤
- 1.3.2 java程序的运行机制和jvm
- [AT2567] [arc074_c] RGB Sequence
- 深度学习之 RPN(RegionProposal Network)- 区域候选网络
- Oracle注册表修改 乱码编码
- 贯穿计算机系统所有方面的重要概念,终于有人讲明白了
- php.ini 只读,disabled by the php.ini setting phar.readonly
- 一个有趣的问题 : 如何设计一个线程池
- 新服务器如何安装操作系统,新服务器如何安装操作系统
- python基础作业_017--python基础作业
- 禁止谷歌浏览器对form元素添加缓存默认值
- Python参考手册(第4版)
- 三星android应用商店,三星应用商店(Galaxy Apps)
- win10 无法查看工作组计算机名,win10系统无法查看工作组计算机的技巧
- 域名、dns、服务器、IP、主机名(写的好)
- OpenGL3D场景大作业制作
- 保存地理坐标信息的SLIC分割结果
- 【实习之路】三本的我字节实习转正,终于尘埃落定——分享我的大学四年
- 互联网基础与应用复习
- NPN型三极管的工作原理