redis学习笔记(二)
来源:互联网 发布:oppo手机照片导入mac 编辑:程序博客网 时间:2024/06/05 18:45
上次简单的介绍了一下redis的优点以及安装过程,今天就学习一下的redis五种数据类型
String(字符串)
和memcached一样的数据类型,memcached只支持这一种,一个key对应一个value,string类型是二进制安全的,所以redis的string可以包含任何数据,比如图片或者系列化的对象。一个键最大能存储512MB
查了一些关于二进制安全的资料:字符串不是根据某种特殊的标志来解析,无论输入是什么,总能保证输出是处理的原始输入而不是根据某种特殊各种来处理的
上边的概念还是有写抽象,举个例子,在c语言中,字符串是以字符数组的形式体现的(以’\0’为结束符),下边的第一个例子中,如果使用C语言来进行判断ab和ac是否相等,返回的结果是相等,因为ac到\0就结束了,但是如果使用redis来存储ac,则不会改变,这涉及到了redis底层对于string的实现,以后学到了,在总结吧~
char ab[] = "Hello"; char ac[] = "Hello\0Hello"; c语言:str = "1234\0123"strlen(str)=4redis:strlen(str)=7
实例:
boy是键,vicent是值
如果我在set boy Tom ,就会把vicent给覆盖掉
Hash(哈希)
hash是一个键值对集合,是一个string类型的field和value的映射表,相当于一个key对应一个map,map中还有key-value,hash特别适合用于存储对象。每个hash可以存储2^32-1键值对(40多亿),Hset向hash中添加内容,Hget从hash中取内容
实例:
List(列表)
Redis列表是简单的字符串列表,按照插入顺序排序,因为有顺序,所以可以重复
从链表左边插入:lpush–返回值为当前列表容量
从链表右边插入:rpush
从某一个位置插入:linsert
删除命令:lpop,rpop,ltrim
Set(集合)
Set是String类型的无序集合。集合成员是唯一的,这就意味着不能出现重复的数据,redis中集合是通过hash表实现的,所以添加、删除、查找的复杂度都是o(1),集合中最大的成员数为2^32-1
插入:sadd
查看:smembers
删除:srem key value
SortedSet(有序集合)
有序集合和集合一眼格式string类型元素的集合,不允许有重复的成员。
有序集合每个元素都会关联一个double类型的分数。redis正式通过分数中的成员进行从小到大的排序。成员唯一,但是分数却可以重复