Redis命令与数据结构

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis常用命令与数据结构。

@TOC

一.初识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官方推荐在Linux环境下进行部署,可以通过这篇博客进行部署安装Redis:Linux环境下安装Redis(保姆级教程)
在这里插入图片描述

2.Redis 六大特性

在这里插入图片描述

3.Redis客户端通用命令

在这里插入图片描述
启动Redis服务端
在这里插入图片描述
启动Redis客户端
在这里插入图片描述

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

在这里插入图片描述
选择第0个数据库(类似于mysql中的user 数据库名;)
在这里插入图片描述

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

向数据库0写入二条数据,key=a value =1 和key = b value = 2
在这里插入图片描述
通过get 获取key=a的值

在这里插入图片描述

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

可以通过 keys * 命令查询出所有的key信息
在这里插入图片描述
并且还可以增加相应条件进行查询,如:
条件1:*表示任意字符
条件2:[h-l]表示字符在l-h中的字符
条件3:?表示匹配1个任意字符

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

Redis常用的五种数据结构如下表:
在这里插入图片描述

1.Redis数据结构-String

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

在这里插入图片描述

字符串结构应用场景:
在这里插入图片描述
Redis字符串指令
在这里插入图片描述

  • msget和mget

在这里插入图片描述

  • incr/decr和 incrby/decrby

在这里插入图片描述

2.Redis数据结构-Hash

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

hash结构图如下:
在这里插入图片描述

Redis中Hash数据结构指令:
在这里插入图片描述
在这里插入图片描述
通过 del user:2:info 命令删除一个Hash对象:
在这里插入图片描述

3.Redis数据结构-List

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

Redis中List数据类型指令:
在这里插入图片描述

在这里插入图片描述
通过 del listkey 命令删除整个list:
在这里插入图片描述

List典型场景:
在这里插入图片描述

4.Redis数据结构-Set

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

Redis中Set数据结构的指令:
在这里插入图片描述
key= user:1:follow
在这里插入图片描述
key=user:2:follow
在这里插入图片描述
差集,交集和并集:
在这里插入图片描述
通过 del user:1:follow(Set的Key) 命令删除单个Set:
在这里插入图片描述

Set应用场景(共同关注交集部分信息):
在这里插入图片描述

5.Redis数据结构-Zset

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

在这里插入图片描述

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

应用场景(游戏榜单):
在这里插入图片描述

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
15天前
|
XML JSON NoSQL
Redis的常用数据结构之字符串类型
Redis的常用数据结构之字符串类型
19 0
|
15天前
|
NoSQL Redis 数据库
Redis的全局命令及相关误区
Redis的全局命令及相关误区
22 0
|
22天前
|
存储 消息中间件 NoSQL
Redis数据类型详解:选择合适的数据结构优化你的应用
Redis数据类型详解:选择合适的数据结构优化你的应用
|
24天前
|
NoSQL Redis 数据库
Redis中的常用命令有哪些?
Redis常用命令包括:PING测试连接,ECHO回显,SELECT切换数据库,QUIT关闭连接;KEYS查找key,EXISTS检查存在,DEL删除key,EXPIRE设置过期时间,TTL查看剩余生存时间,TYPE检测数据类型;STRING操作如SET/GET/MSET/MGET,INCR/DECR增减计数;HASH命令如HSET/HGET/HMSET/HMGET/HGETALL管理字段;LIST操作如LPUSH/RPUSH/LPOP/RPOP/LRANGE;
10 0
|
27天前
|
存储 NoSQL 算法
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)(二)
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
43 0
|
6天前
|
存储 NoSQL Java
Redis 命令
Redis 命令
141 0
|
17天前
|
NoSQL Redis 数据库
通过migrate命令实现两个redis实例之间的数据迁移
通过migrate命令实现两个redis实例之间的数据迁移
|
27天前
|
存储 NoSQL Redis
作者推荐 |【Redis技术进阶之路】「原理系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)(三)
作者推荐 |【Redis技术进阶之路】「原理系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)
28 0
|
8月前
|
缓存 NoSQL 小程序
|
存储 消息中间件 缓存
redis的数据结构有哪些?使用场景分别是什么?底层原理是什么?
redis的数据结构有哪些?使用场景分别是什么?底层原理是什么?
122 0