Redis超详细入门手册教程!还不快来看看?1

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis超详细入门手册教程!还不快来看看?

地址:

Redis

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. Redis provides data structures …

https://redis.io/

1:NoSQL简介

1.1:数据库应用的演变历程

               单机数据库时代、Memcached时代、读写分离时代、分表分库时代(集群)、nosql时代。

1.2:NoSQL数据库

           NoSQL = Not Only SQL(不仅仅是SQL) ,泛指non-relational(非关系型数据库)。今天随着互联网web2.0网站的兴起,比如谷歌或Facebook每天为他们的用户收集万亿比特的数据,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展,就是一个数据量超大。传统的SQL语句库不再适应这些应用了。NoSQL数据库是为了解决大规模数据集合多重数据种类带来的挑战,特别是超大规模数据的存储。

NoSQL数据库的一个显著特点就是去掉了关系数据库的关系型特性,数据之间一旦没有关系,使得扩展性、读写性能都大大提高。

1.3:当前NoSQL的使用

        NoSQL和传统的关系型数据库不是排斥和取代的关系,在一个分布式应用中往往是结合使用的。复杂的互联网应用通常都是多数据源、多数据类型,应该根据数据的使用情况和特点,存放在合适的数据库中。

1.4:NoSQL数据模型

传统关系型数据库:表。

t_student、t_address、t_course

NoSql数据库:聚合结构

{
 "student":{
   "id":1001,
   "name":"zhangsan",
   "addresses":{"province":"beijing","city":"daxingqu","street":"liangshuihe"},
   "courses":[
    {
        "id":01,
        "name":"java"
      },
  {
        "id":02,
        "name":"mybatis"
      },
  {
        "id":03,
        "name":"spring"
      }
    ]
  }
}

2:Redis

1.2:Redis简介

          Remote Dictionary Server(远程字典服务器),是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库.也是当前热门的NoSQL数据库之一。

1.2:Redis的特点

1、支持数据持久化:Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。

2、支持多种数据结构:Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

3、支持数据备份:Redis支持数据的备份,即master-slave模式的数据备份。

1.3:Redis客户端

1:Redis客户端是一个程序,通过网络连接到Redis服务器,从而实现跟 Redis服务器的交互。

2:Redis客户端发送命令,同时显示Redis服务器的处理结果。

3:redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,用于与服务端交互,我们可以使用该客户端来执行redis的各种命令。

1.启动Redis客户端:

1.直接连接redis (默认ip127.0.0.1,端口6379):redis-cli

在任意目录执行  redis-cli

此命令是连接本机127.0.0.1 ,端口6379的redis

f55a641322084dfab0ac5af5780f5ad9.png

1.指定IP和端口连接redis:redis-cli –h 127.0.0.1 -p 6379

2.redis-cli  -h 相连接主机的IP地址 –p redis的端口号

-h redis主机IP(可以指定任意的redis服务器)

-p端口号(不同的端口表示不同的redis应用)

在任意目录下执行  redis-cli -h 127.0.0.1 -p 6379

a5bca7a29cfd4481a0f45cd73d9ee59e.png

退出Redis客户端:exit或者quit指令。

1.4:Redis基本知识

1. 测试Redis性能

dfe5f1be025c46c19daa0852b941de59.png

7da06ecc5c184004a8b7e3b000c95d41.png

2. Redis沟通命令,查看状态

redis >ping 返回PONG

解释:输入ping,redis给我们返回PONG,表示redis服务运行正常

bb9d9fb35eb645d3a97c579baab306cf.png

3. 查看redis服务器的统计信息:info

语法:info [section]

作用:以一种易于解释且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值。section 用来返回指定部分的统计信息。 section的值:server , clients ,memory等等。不加section 返回全部统计信息

返回值:指定section的统计信息或全部信息

例1:统计server的信息

ad8f0852ef764281ba566ec3bde7453d.png

例2:统计全部信息

58c2a4f7c4b24472b4f9f9dc5be94c67.png

4. redis默认使用16个库

Redis默认使用16个库,从0到15。 对数据库个数的修改,在redis.conf文件中databases 16,理论上可以配置无限多个。

e24c2043a2cd4b5898f23bf1f7917af0.png

Redis的库和关系型数据库中的数据库实例类似,但又有一些不同,比如redis中各个库不能自定义命名,只能用序号表示,redis中各个库不是完全独立的,使用时最好一个应用使用一个redis实例,不建议一个redis实例中保存多个应用的数据。Redis实例本身所占存储空间其实是非常小的,因此不会造成存储空间的浪费。

5. 切换库命令:select db

默认使用第0个,如果要使用其他数据库,命令是 select index

86b883410a804d14a95ce6ff61e0f9d4.png

6. 查看当前数据库中key的数目:dbsize

语法:dbsize

作用:返回当前数据库的 key 的数量。

返回值:数字,key的数量

8124d62ccdeb4fcd8189a6f4742ddff1.png

7. 查看当前数据库中有哪些key:keys *

b7dfe639e9ab43dab33157135cbfc55d.png

8. 清空当前库:flushdb

9dda50a1d01742d08ed977f7a6302353.png

9. 清空所有数据库:flushall

eeb1b6d1b3be4dc19499633ef91a126c.png

这也体现出redis中的库并不是完全无关的。

10. config get * 获得redis的所有配置值

语法:config get parameter

作用:获取运行中Redis服务器的配置参数, 获取全部配置可以使用*。参数信息来自redis.conf 文件的内容。

例1:获取数据库个数 config get databases

2a4e519d39674f65ba56ce873596b8df.png

例2:获取端口号config get port

fb50231f24a54a77890e13c75f682f8f.png

1.5:手册地址:

redis英文版命令大全:

Commands | Redis

https://redis.io/commands

redis中文版命令大全:

Redis 命令参考 — Redis 命令参考

http://redisdoc.com/

3:Redis的五种数据类型

A: 字符串类型 string

字符串类型是Redis中最基本的数据结构,它能存储任何类型的数据,包括二进制数

据,序列化后的数据,JSON化的对象甚至是一张图片。最大512M。

28aca23ff34e462ab86663cd6dad0c75.png

B: 列表类型 list

Redis列表是简单的字符串列表,按照插入顺序排序,元素可以重复。你可以添加一个元素到列表的头部(左边)或者尾部(右边),底层是个链表结构。

76411d1d48f244a6b3157eb654d1dfc8.png

C: 集合类型 set

Redis的Set是string类型的无序无重复集合。

cf6db38de9074b92b034d25a42f8acd1.png

D: 哈希类型 hash

Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。

d42ed699c067479b95ee6a5fbd70014a.png

E: 有序集合类型 zset (sorted set)

Redis 有序集合zset和集合set一样也是string类型元素的集合,且不允许重复的成员。

不同的是zset的每个元素都会关联一个分数(分数可以重复),redis通过分数来为集合中的成员进行从小到大的排序。

71ffd1f848b94305906d747209f2a28a.png

4: Redis的常用操作命令

4.1 Redis的Key的操作命令

语法:keys pattern

作用:查找所有符合模式pattern的key.  pattern可以使用通配符。

通配符:

  1. *:表示0或多个字符,例如:keys * 查询所有的key。
  2. ?:表示单个字符,例如:wo?d , 匹配 word , wood
  3. [] :表示选择[]内的一个字符,例如wo[or]d, 匹配word, wood, 不匹配wold、woord

f02136b3466b40f6a83cb704bac02468.png

4.2  exists

语法:exists key [key…]

作用:判断key是否存在

返回值:整数,存在key返回1,其他返回0。使用多个key,返回存在的key的数量。

96c0404047764a86af9cc395b74eaf3f.png

4.3 move

语法:move key db

作用:移动key到指定的数据库,移动的key在原库被删除。

返回值:移动成功返回1,失败返回0.

46d479d342d64ebb8f2d7908cd160274.png

4.4 ttl

语法:ttl key

作用:查看key的剩余生存时间(ttl: time to live),以秒为单位。

返回值:

1.-1 :没有设置key的生存时间, key永不过期。

2.-2:key不存在

dd5d6db09a334915a8e9d464ca7aa3f1.png

4.5 expire

语法:expire key seconds

作用:设置key的生存时间,超过时间,key自动删除。单位是秒。

返回值:设置成功返回数字 1,其他情况是 0 。

774e61cff18f4b5e926a9df9ec439137.png

4.6 type

语法:type key

作用:查看key所存储值的数据类型

返回值:字符串表示的数据类型

  1. none (key不存在)
  2. string (字符串)
  3. list (列表)
  4. set (集合)
  5. zset (有序集)
  6. hash (哈希表)

1b353a7e9dd342458957dbff1496c779.png

4.7  rename

语法:rename key newkey

作用:将key改为名newkey。当 key 和 newkey 相同,或者 key 不存在时,返回一个错误。

当 newkey 已经存在时, RENAME 命令将覆盖旧值。

548f6001a5e5440383fa9422e2401694.png

4.8  del

语法:del key [key…]

作用:删除存在的key,不存在的key忽略。

返回值:数字,删除的key的数量。

240a4b836c8c4c15807d766d42270779.png



相关实践学习
基于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
目录
相关文章
|
6天前
|
存储 缓存 NoSQL
Redis核心入门知识简记
Redis核心入门知识简记
26 0
|
1天前
|
缓存 NoSQL Java
【Redis系列笔记】Redis入门
本文介绍了Redis常用命令,以及SpringBoot集成Spring Data Redis和Spring Cache。Spring Data Redis 提供了对 Redis 的操作方法,而 Spring Cache 则提供了基于注解的缓存功能,可以方便地将方法的返回值缓存到 Redis 中,以提高性能和减少对数据源的访问次数。这样的集成可以帮助开发者更便捷地利用 Redis 来管理应用程序的数据和缓存。
16 4
|
7天前
|
存储 缓存 NoSQL
Redis入门到通关之Redis内存淘汰(内存过期)策略
Redis入门到通关之Redis内存淘汰(内存过期)策略
22 3
|
7天前
|
存储 NoSQL Linux
Redis入门到通关之多路复用详解
Redis入门到通关之多路复用详解
14 1
|
7天前
|
存储 NoSQL Linux
Redis入门到通关之Redis5种网络模型详解
Redis入门到通关之Redis5种网络模型详解
23 1
|
7天前
|
NoSQL Ubuntu 关系型数据库
Redis入门到通关之Redis网络模型-用户空间和内核态空间
Redis入门到通关之Redis网络模型-用户空间和内核态空间
13 1
|
7天前
|
存储 NoSQL 算法
Redis入门到通关之Redis数据结构-Hash篇
Redis入门到通关之Redis数据结构-Hash篇
17 1
|
7天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-Set篇
Redis入门到通关之Redis数据结构-Set篇
15 1
|
7天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-ZSet篇
Redis入门到通关之Redis数据结构-ZSet篇
13 1
|
7天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-List篇
Redis入门到通关之Redis数据结构-List篇
24 1