Redis基础详解

  • 什么是redis?

redis是一个内存型的,key-value型数据库.在这里要介绍了redis的三个特征,1.内存型,这是redis目前能够得到广泛应用的关键,存储在内存中,保证了足够快的读写速度,因此,redis目前被大量用于做缓存.2.key-value型数据库,说明了redis的数据格式为key-value型的.3.数据库,归根结底,redis还是一个nosql型的数据库,大家在学习的时候,也应该以看待数据库的眼光来学习redis.

  • redis基础必备

redis下载地址 https://redis.io/download (linux版),win版需要到github下载 https://github.com/ServiceStack/redis-windows/tree/master/downloads 

然后我们介绍一款redis可视化管理工具:Redis Desktop Manager,下载地址:https://redisdesktop.com/

安装教程在这里我们就不多讲了,网上都有,安装也比较简单,win版本中,解压后redis-server.exe即为服务器,redis-cli.exe为客户端

  • 数据结构介绍

前面已经说过,redis作为一个非关系型数据库,我们必然要了解他的数据结构.reids中支持五种数据结构,string,list,set,zset,hash.

String 类型存储:

string 的value值支持字符串,整数,浮点数,使用set进行存储,get进行获取.

例如:Redis基础详解

list 的value值(可重复)为一个链表,链表的每个节点都是一个字符串,可以使push进行存储,pop进行获取:

例如:Redis基础详解

除此之外,还支持lindex获取指定位置的元素,lrange获取指定范围的元素.

set 的value(不可重复)是一个无序集合,集合中的每一个元素都是一个字符串,可以使用sadd 添加元素,srem从集合中移除元素,sismember检查集合中是否存在元素,smembers获取集合中的所有元素.

例如:Redis基础详解

hash 的value是一个键值对,hset为添加散列的键值对,hget为获取散列的键的值,hgetall 获取散列包含的所有的键值对,hdel如果存在给定的键,就删除.

例如:Redis基础详解

zset 的value是一个value(成员)-score(分数)形式的有序集合,集合根据score排序,value值不能重复,score可以重复.zset既可以根据成员访问元素,又可以根据分数访问元素.可以使用zadd 添加成员,zrange根据成员在集合中的位置,获取多个元素,zrangebyscore获取在有序集合中给定分数范围内的成员,zrem如果有序集合中存在给定的成员,就移除.

例如:Redis基础详解

至此,redis五种数据结构介绍完毕.当然,我们也可以通过可视化工具,清楚的看到redis中存储的数据,如图所示:

Redis基础详解

这样,也有助于我们对redis数据结构的理解.