Redis专题讲解

1、Redis简介

    Redis是一个key-value存储系统,全称为Remote Dictionary Server,即远程字典服务器。和所谓的MySQL和Oracle不一样,它是key/value数据库,支持多种value类型,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。Redis的出现,很大程度弥补了关系型数据库的不足。它提供了各种常见语言的客户端,使用很方便。

2、Redis数据结构

Redis支持string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)

2.1.1 string

string即字符串类型,本质为byte数组。其值可以是字符串(简单的字符串、复杂的字符串(例如JSON、XML))、数字(整数、浮点数),甚至是二进制(图片、音频、视频),但是值最大不能超过512MB。

string类型提供了多种多样的命令可供使用,几乎所有编程语言中string的操作都可以在Redis中找到对应的命令。除了上述命令外,如果string存储的是一个数字的话,还可以直接对该数字执行算术操作命令。

2.1.2 list

列表(list)用来存储多个有序的字符串,列表中的每个字符串称为元素(element),一个列表最多可以存储2^32 -1个元素。

list本质是一个双链表,其支持双链表支持的所有类型操作。list还支持类似数组的区间操作。list可以当做栈和队列使用。同时list还支持阻塞操作。

2.1.3 hash

哈希(hash)类型是指键值本身又是一个键值对结构,value={ {field1,value1},...{fieldN,valueN}}。hash类型特别适合用来保存一些结构化的数据,比如编程语言中的对象。举一个简单的例子,要在redis中存储一个学生的信息,key为这个学生的学号,value={"name":"小明","age":"18","gender":"male"}。需要注意的是,hash的key和value均为string。

在Memcached中,我们经常将一些结构化的信息打包成HashMap,在客户端序列化后存储为一个字符串的值,比如用户的昵称、年龄、性别、积分等,这时候在需要修改其中某一项时,通常需要将所有值取出反序列化后,修改某一项的值,再序列化存储回去。这样不仅增大了开销,也不适用于一些可能并发操作的场合(比如两个并发的操作都需要修改积分)。而Redis的Hash结构可以使你像在数据库中Update一个属性一样只修改某一项属性值。

2.1.4 set

集合(set)就是一堆不重复值的组合,类似于java中的HashSet,用来保存多个的字符串元素,但和列表类型不一样的是,集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。

利用set数据结构,可以存储一些集合性的数据,比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。Redis还为集合提供了求交集、并

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值