Redis的数据类型

     Redis中一共包含五中数据类型,下面就让我们一块认识下:


     一、String


      String是最简单的类型,一个Key对应一个Value,string类型是二进制安全的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。


     常用的set命令有:


     1.set

     设置key对应的值为string类型的value;

     2.setnx

     设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思。

     3.setex

     设置key对应的值为string类型的value,并指定此键值对应的有效期。

     4.setrange

     设置指定key的value值得子字符串

     5.mset

     一次设置多个key的值,成功返回ok,表示所有的值都设置了,失败返回0表示没有任何值被设置。

     6.msetnx

     一次可以设置多个key的值,但是不会覆盖已经存在的key


     常用的get命令:


     1.get

     获得key值

     2.getset

     获取旧值,设置新值

     3.getrangge

     获取key的value值的子字符串

     4.mget

     一次获取多个key的值,如果对应key不存在则对应返回nil


     常用的key命令:


     1.incr

     对key的值做加加操作,并返回新的值;

     2.incrby

     通incr类似,加指定值,key不存在的时候会设置key,并认为原来的value是0


     二、hash类型


     Redis中hash是一个string类型的field和value的映射表,特别适合用于存储对象,相比较对象的每个字段存成单个string类型,将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。


     三、list类型


     List是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等,操作中key理解为链表的名字。Redis的list类型其实就是一个每个子元素都是string类型的双向链表。我们可以通过push、pop操作从链表的头部或者尾部添加删除元素,这样list既可以作为栈,又可以作为队列。


     四、set类型


     set是集合,它是string类型的无序集合。set是通过hash table实现的,添加、删除和查找的复杂度都是0(1)。对集合我们可以取并集、交集、差集合。


     五、Sorted set


     Sorted set是set的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为两列MySQL表,一列存value,一列存顺序。操作中key理解为zset的名字。


     对比:

                    

     Redis中的数据类型设计和java中的集合是一样的,主要是为了方便我们存储不同的数据。Hash类型适合存储对象,hash的内部实现就是一个HashMap,我们在读取数据时通过key值+filed(属性)就可以读到我们想要的数据;对于list而言,它是有序的,可以通过索引获取我们想要的数据;最后的set,它是一个无序集合,其实内部实现就是一个value值永远为null的HashMap.



     理论永远要和实践结合起来,redis中的list、set、hash和我们之前在java中学习过的list、set和map设计的性质是非常相似的,可以结合一起学习。具体的应用场景在此就不再举例了。


     





评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值