Redis 数据类型总结—String
2016-03-30 20:47
661 查看
1.1 数据类型
Redis常用五种数据类型:string, hash, list, set, zset(sorted set).![](https://images2015.cnblogs.com/blog/312335/201603/312335-20160330204317082-805308137.png)
Redis内部使用一个redisObject对象来表示所有的key和value, redisObject最主要的信息如上图所示
type代表 一个value对象具体是何种数据类型,encoding是不同数据类型在redis内部的存储方式,比如:type=string代表value存储的 是一个普通字符串,那么对应的encoding可以是raw或者是int,如果是int则代表实际redis内部是按数值型类存储和表示这个字符串的,当 然前提是这个字符串本身可以用数值表示,比如:"123" "456"这样的字符串。
打开redis源码 scr/sds.h 查看String类型的结构 (注;以下都是redis-3.0的源码)
![](https://images2015.cnblogs.com/blog/312335/201603/312335-20160330204335473-2143995655.png)
Type 为对应的5中数据类型,已经定义好了
![](https://images2015.cnblogs.com/blog/312335/201603/312335-20160330204453285-769842660.png)
1.1.1 String类型
1. String数据类型String是最简单的类型,一个key对应一个value,String类型的数据最大1G。String类型的值可以被视作integer,从而可以让“INCR”命令族操作(incrby、decr、decrby),这种情况下,该integer的值限制在64位有符号数。在list、set和zset中包含的独立的元素类型都是Redis String类型。
2. String数据结构
打开redis源码 scr/sds.h 查看String类型的结构
![](https://images2015.cnblogs.com/blog/312335/201603/312335-20160330204659566-1496699001.png)
len: 标记char[]的长度, 有点类似我们C#中List的length一个意思。
free: 标记char[]中未使用的元素个数,就是有几个空坑的意思。
buf[]:存放元素的坑,不一定和元素的实际个数相等,比如前面说的cnblogs。也有可能是[c]
[l][o][g][s][/0][][][]。
[b]3. String数据类型常用命令
Resids相关命令都可以参考网站信息http://doc.redisfans.com/
相关文章推荐
- Redis 配置文件总结
- 【Redis】简介与安装
- Tomcat7+redis Session共享
- Redis基本使用
- spring-data-redis用配置类连接时,抛异常Cannot get Jedis connection; nested exception is java.lang.NullPointerEx
- 基于redis排行榜的实战总结
- redis实战课题
- Redis集群部署文档(Ubuntu15.10系统)
- java redis 基本操作
- cengos 安装redis 并将redis启动添加为系统服务
- Redis缓存
- redis配置文件redis.conf详细说明
- redis启动
- Redis让Spark数据分析速度提升45倍(留作机器学习使用)
- 超强、超详细Redis数据库入门教程
- 利用redis实现分布式环境下的限频
- Redis持久化
- windows配置phpredis
- redis基础
- 基于注解的SpringAOP Redis缓存技术