> 文档中心 > Redis命令与数据结构

Redis命令与数据结构

本篇博文目录:

      • 一.初识Redis
        • 1.什么是Redis
        • 2.Redis 六大特性
        • 3.Redis客户端通用命令
      • 二.Redis中支持的五种数据结构
        • 1.Redis数据结构-String
        • 2.Redis数据结构-Hash
        • 3.Redis数据结构-List
        • 4.Redis数据结构-Set
        • 5.Redis数据结构-Zset

一.初识Redis

1.什么是Redis

简记: Redis是一个开源的使用ANSI C语言编写、支持网络、可 基于内存亦可持久化 的日志型、Key-ValueNoSQL数据库 ,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由 VMware 主持。从2013年5月开始,Redis的开发由Pivotal赞助。

官方解释: Redis是一个基于BSD开源的项目,是一个把结构化的数据放在内存中的一个存储系统,你可以把它作为数据库,缓存和消息中间件来使用。同时支持strings,lists,hashes,sets,sorted sets,bitmaps,hyperloglogs和geospatial indexes等数据类型。它还内建了复制,lua脚本,LRU,事务等功能,通过redis sentinel实现高可用,通过redis cluster实现了自动分片。以及事务,发布/订阅,自动故障转移等等。

Redis官网地址:https://redis.io/docs/about/
Redis命令与数据结构
Redis官方推荐在Linux环境下进行部署,可以通过这篇博客进行部署安装Redis:Linux环境下安装Redis(保姆级教程)
Redis命令与数据结构

2.Redis 六大特性

Redis命令与数据结构

3.Redis客户端通用命令

Redis命令与数据结构
启动Redis服务端
Redis命令与数据结构
启动Redis客户端
Redis命令与数据结构

  • select用于选择数据库(Redis默认16个数据库,由于我在配置文件中配置了databases为256,所以当前我的数据库中有0~255个数据库)

Redis命令与数据结构
选择第0个数据库(类似于mysql中的user 数据库名;)
Redis命令与数据结构

  • set key value 命令用户写入字符串数据,通过 get key 命令获取key对应的value

向数据库0写入二条数据,key=a value =1 和key = b value = 2
Redis命令与数据结构
通过get 获取key=a的值

Redis命令与数据结构

  • keys查询数据库中所有的键信息

可以通过 keys * 命令查询出所有的key信息
Redis命令与数据结构
并且还可以增加相应条件进行查询,如:
条件1:*表示任意字符
条件2:[h-l]表示字符在l-h中的字符
条件3:?表示匹配1个任意字符

Redis命令与数据结构

  • dbsize查询当前数据库key的总数

Redis命令与数据结构

  • exists用户查找当前key是否存在(1:表示存在,0:表示不存在)

Redis命令与数据结构

  • del删除指定key的数据(1:删除成功,0:删除失败)

Redis命令与数据结构

  • expire设置当前key多少秒后过期(删除),ttl用于查询过期剩余时间

Redis命令与数据结构

二.Redis中支持的五种数据结构

Redis常用的五种数据结构如下表:
Redis命令与数据结构

1.Redis数据结构-String

字符串类型结构是一种String-JSON序列化,这种方式优点就是编程简单,节约内存,缺点就是序列化开销,无法更新部分属性,注意 String最大512mb,建议单个key和Value不要超过100kb

Redis命令与数据结构

字符串结构应用场景:
Redis命令与数据结构
Redis字符串指令
Redis命令与数据结构

  • msget和mget

Redis命令与数据结构

  • incr/decr和 incrby/decrby

Redis命令与数据结构

2.Redis数据结构-Hash

① Hash类型用于存储结构化数据(1个key可以保存一个对象).
② Hash可以看做是Map中的Map
③ 这种方式优点直观,可部分更新;缺点多层嵌套实现困难,序列化/反序列化编程麻烦

hash结构图如下:
Redis命令与数据结构

Redis中Hash数据结构指令:
Redis命令与数据结构
Redis命令与数据结构
通过 del user:2:info 命令删除一个Hash对象:
Redis命令与数据结构

3.Redis数据结构-List

① List列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)
② 一个列表最多可以包含2的32次方- 1个元素(4294967295, 每个列表超过40亿个元素)。

Redis中List数据类型指令:
Redis命令与数据结构

Redis命令与数据结构
通过 del listkey 命令删除整个list:
Redis命令与数据结构

List典型场景:
Redis命令与数据结构

4.Redis数据结构-Set

① Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
② Redis 中集合是通过哈希表实现的,所以添加,删除,查找的速度极快。
③ 集合中最大的成员数为 2的32次方- 1 (4294967295,每个集合可存储40多亿个成员)。

Redis中Set数据结构的指令:
Redis命令与数据结构
key= user:1:follow
Redis命令与数据结构
key=user:2:follow
Redis命令与数据结构
差集,交集和并集:
Redis命令与数据结构
通过 del user:1:follow(Set的Key) 命令删除单个Set:
Redis命令与数据结构

Set应用场景(共同关注交集部分信息):
Redis命令与数据结构

5.Redis数据结构-Zset

Redis 的 Set 是 String 类型的有序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

Redis命令与数据结构

Redis中Z-set数据结构指令:
Redis命令与数据结构
排名最低从0开始(根据分数进行排名,最低为0,一次往上加一)
Redis命令与数据结构
使用 flushdb 命令清空当前数据库中的所有数据:
Redis命令与数据结构
使用 zrangebyscore player:rank 700 901 命令根据分数进行排序:
Redis命令与数据结构

应用场景(游戏榜单):
Redis命令与数据结构

组词