Redis有5种基本数据类型,分别为String(字符串),list(列表),hash(字典),set(集合),和zset(有序集合)。这5中数据类型的熟练使用,是Redis的相关知识中最基础,最重要的部分,也是Redis面试面试题中被问到最多的知识点。

在这里将带领Redis初学者快速掌握着5中数据类型,考虑到Redis的命令非常多,这里只选取最常见的进行讲解。

  1. String(字符串)

    字符串string是Redis中最简单的数据结构,他的内部标示的就是一个字符数组。Redis所有的数据结构都以唯一的key字符串作为名称,然后通过这个唯一的key值来获取对应value数据,不同的数据类型的差异就在于value的结构不一样。

字符串的结构使用的非常广泛,一个常见的用途就是缓存用户信息,我们将用户信息结构体使用JSON序列化成字符串,然后将序列化后的字符串塞进Redis来缓存。同样,取用户信息会经过一个反序列化的过程。

Redis的字符串是动态字符串,可以修改字符串,内部结构类似于Java的ArrayList,采用预分配的冗余空间的方式来减少内存分配的频率,内部为当前字符串分配的实际空间一般高于实际字符串长度,当字符串长度小于1MB时,扩容都是加倍现有的空间,如果字符串长度超过了1MB,扩容时一次只会多扩容1MB,需要注意的是字符串最大长度为412MB。

【键值对】

想当于字段的key和value,支持简单的正删改查的操作,下面代码中的“name”就是字典中的key,而value就是字符串                       的“codehole”,一下是常用的命令整理

Sring类型常用的命令
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数据类型相关推荐

  1. python中判断列表数据类型_浅谈Python数据类型判断及列表脚本操作

    数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...

  2. Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理

    基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客  QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3 ...

  3. python数据类型转换原因_浅谈Python数据类型之间的转换

    Python数据类型之间的转换 函数 描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 compl ...

  4. python列表使用判断_浅谈Python数据类型判断及列表脚本操作

    数据类型判断 在python(版本3.0以上)使用变量,并进行值比较时.有时候会出现以下错误: TypeError: unorderable types: NoneType() < int() ...

  5. python文本框与数据库的关联_Python 基于python+mysql浅谈redis缓存设计与数据库关联数据处理...

    基于python+mysql浅谈redis缓存设计与数据库关联数据处理 by:授客 QQ:1033553122 测试环境 redis-3.0.7 CentOS 6.5-x86_64 python 3. ...

  6. Redis设计与实现 -- 浅谈Redis持久化

    在讲解Redis持久化相关的话题之前,我们需要了解的是Redis为什么这么快?也就是Redis的IO模型 – 多路复用. 我们一句话概括为什么Redis这么快: Redis是单线程的,使用多路复用的I ...

  7. 浅谈Redis的基本原理和数据类型结构的特性和应用开发场景

    一.Redis介绍 1,redis介绍(Redis安装在磁盘:Redis数据存储在内存) redis是一种基于键值对(key-value)数据库,其中value可以为string.hash.list. ...

  8. 浅谈Redis及其安装配置

    一.Redis的介绍 二.Redis的安装配置 三.Redis的配置文件说明 四.Redis的简单操作 简介: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型. ...

  9. 浅谈Redis五种数据结构的底层原理

    概念 Redis作为一个开源的用C编写的非关系型数据库,基于优秀的CRUD效率,常用于软件系统的缓存,其本身提供了以下五种数据格式: string:字符串 list:列表 hash:散列表 set:无 ...

最新文章

  1. Oracle 9i 从9.2.0.1升级到 9.2.0.6 步骤
  2. 1.3.2 java程序的运行机制和jvm
  3. [AT2567] [arc074_c] RGB Sequence
  4. 深度学习之 RPN(RegionProposal Network)- 区域候选网络
  5. Oracle注册表修改 乱码编码
  6. 贯穿计算机系统所有方面的重要概念,终于有人讲明白了
  7. php.ini 只读,disabled by the php.ini setting phar.readonly
  8. 一个有趣的问题 : 如何设计一个线程池
  9. 新服务器如何安装操作系统,新服务器如何安装操作系统
  10. python基础作业_017--python基础作业
  11. 禁止谷歌浏览器对form元素添加缓存默认值
  12. Python参考手册(第4版)
  13. 三星android应用商店,三星应用商店(Galaxy Apps)
  14. win10 无法查看工作组计算机名,win10系统无法查看工作组计算机的技巧
  15. 域名、dns、服务器、IP、主机名(写的好)
  16. OpenGL3D场景大作业制作
  17. 保存地理坐标信息的SLIC分割结果
  18. 【实习之路】三本的我字节实习转正,终于尘埃落定——分享我的大学四年
  19. 互联网基础与应用复习
  20. NPN型三极管的工作原理

热门文章

  1. Java通过axis调用WebService
  2. Github头像上传不了、加载不出来
  3. 楚留香哪个服务器最新,楚留香官服和混合服哪个好 哪个服务器的人多
  4. 面试笔记:面经-猿辅导-一面
  5. 2011-09-06 [plus_format_fck.js代码]
  6. Plotly学习 3D三维轴的设置
  7. 荣耀magic3参数配置
  8. PCLint使用介绍
  9. mysql未开启binlog恢复数据_MYSQL bin_log 开启及数据恢复
  10. linux系统下刻录u盘制作启动盘