初学Redis简介以及入门

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 初学Redis简介以及入门

一.Redis的介绍

1.什么是redis?

Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统。它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。与传统的关系型数据库相比,Redis 是一种更加快速高效的数据存储方式。

Redis 在内存中存储数据,可以提供非常快速的读写性能。同时,Redis 还支持数据持久化,可以将内存中的数据定期或实时地写入硬盘,防止数据丢失。此外,Redis 还提供了一些高级功能,如事务支持、发布/订阅机制、Lua 脚本支持等。

由于 Redis 的高性能和可扩展性,它被广泛应用于缓存、消息队列、计数器、分布式锁、实时排行榜、推荐系统等领域,成为了互联网应用开发中不可或缺的一部分。

2.redis的应用场景

以下是几个常见的Redis应用场景:

  1. 缓存:Redis最常见的用途之一是作为缓存层。将经常被访问的数据缓存到Redis中,可以大大加快数据的访问速度。通过使用Redis的数据结构和内置的缓存过期功能,可以灵活地控制缓存的失效时间,并且能够轻松地扩展缓存容量。
  2. 分布式锁:在分布式系统中,为了保证数据的一致性和并发访问的正确性,常常需要使用分布式锁。Redis提供了原子操作的特性,可以方便地实现分布式锁机制,确保在同一时间只有一个线程可以访问共享资源
  3. 计数器:Redis的原子操作使得它非常适合用作计数器。通过使用Redis的自增操作,可以实现高效地计数,并且支持并发访问。计数器可以用于统计网站的访问次数、消息队列的消费进度等场景。
  4. 消息队列:Redis的发布/订阅功能可以实现简单而高效的消息队列系统。生产者将消息发布到指定的频道,而消费者则可以订阅这些频道并接收消息。由于Redis的高性能和可靠性,它可以处理大量的消息,并且支持多个消费者同时订阅不同的频道。
  5. 数据缓存:除了作为缓存层之外,Redis还可以用作数据的持久化存储。通过将热点数据存储在Redis中,可以减轻数据库的负载,并提高系统的响应速度。此外,Redis还支持数据的持久化操作,可以将数据写入磁盘,以防止数据丢失。

3.no-sql数据库和sql数据库区别

NoSQL数据库和SQL数据库是两种不同的数据库类型,它们在数据存储、查询和管理等方面有很大的差异。

  1. 数据存储:SQL数据库采用关系型数据模型,数据以表格的形式存储,每张表格由一组列和行组成。而NoSQL数据库则采用非关系型数据模型,数据以文档、键值对、图形或列族等形式存储。这使得NoSQL数据库能够更加灵活地处理不规则、半结构化和非结构化数据。
  2. 查询语言:SQL数据库使用结构化查询语言(Structured Query Language)进行查询和操作,这种语言具有严格的语法和规则。而NoSQL数据库通常不提供统一的查询语言,查询和操作语言可能因不同的数据库而异。
  3. 数据一致性:SQL数据库通常采用ACID(原子性、一致性、隔离性和持久性)事务模型,确保数据的一致性和完整性。而NoSQL数据库则更倾向于BASE(基本可用性、软状态和最终一致性)模型,强调可用性和分布式系统的特点
  4. 可扩展性NoSQL数据库天生就是设计为可伸缩的,可以轻松地实现分布式存储和查询。SQL数据库则需要通过复制和分区等技术来实现扩展

常见的sql数据库

  1. MySQL:MySQL是一个开源的关系型数据库管理系统,由瑞典的MySQL AB公司开发。它具有良好的性能、可伸缩性和稳定性,被广泛应用于各种规模的应用程序。MySQL支持标准的SQL语言,并且有广泛的社区支持和活跃的开发者社区。
  2. Oracle Database:Oracle Database是由Oracle公司开发的一款商业级关系型数据库管理系统,被广泛应用于大型企业级应用和复杂的数据处理场景。Oracle Database具有强大的功能和安全性,以及高度可靠的性能和扩展性。
  3. SQL Server:SQL Server是由微软公司开发的一款关系型数据库管理系统。它在Windows操作系统上广泛使用,并提供了丰富的工具和功能,包括高可用性、分布式处理和商业智能等方面的支持。

常见no-sql数据库

  1. .Redis是一个开源的高性能内存数据存储系统,它可以用作缓存、消息队列等多种用途。Redis支持多种数据结构,如字符串、哈希表、列表、集合和有序集合,可以进行原子性操作和事务。Redis的特点是读写速度快、可靠性高、支持分布式、可扩展性好等,适用于需要快速读写和处理大量数据的场景,如高并发、实时性强的Web应用程序。
  2. .Ehcache是一个Java内存缓存框架,提供了基于内存的缓存和磁盘缓存,适用于中小型应用系统。Ehcache可以通过配置文件来设置缓存策略和过期时间,并且提供了多种缓存策略和缓存算法,可以根据不同的业务需求进行优化和调整。Ehcache的特点是易于使用、轻量级、扩展性好等,适用于对数据实时性要求不高,但需要频繁访问的场景。
  3. MongoDB是一个高性能、可扩展、面向文档的NoSQL数据库,使用JSON格式存储数据,适用于大规模数据存储和分析。MongoDB支持复杂的查询语句和索引,具有高可用性、强一致性、分布式等特点。它适合用于数据量大、读写并发高、需要进行复杂数据分析和处理的场景,如互联网应用、物联网、大数据等。

二.redis的安装

1.linux操作系统的安装

开始解压  tar -zxvf redis-5.0.0.tar.gz

安装gcc       yum install gcc

安装 redis   make

修改redis.conf文件

cp redis.conf redis_bak.conf

将daemonize no 改为 daemonize yes

启动radis  ./src/redis-server redis.conf

杀死进程

打开本地解析ip

设置防火墙开放 6379 端口

firewall-cmd --zone=public --add-port=6379/tcp --permanent

再次重新启动

再次登录是要携带 ip  端口号 以及 密码

./src/redis-cli -h 127.0.0.1 -p 6379 -a 123456

然后在 RedisDesktopManager 测试即可

2.Windows版本的安装

在  RedisDesktopManager 测试即可

三.语法

Redis字符串(String)

# set key          //保存

set name zs

set age 12

set sex nan


# get key          //获取

get name


# type key         //查看类型

type age            //string 说明type返回的是键值对存储类型,而不是值存储类型


# keys *或keys key //查看所有或者指定的key

keys *


# SETEX KEY_NAME TIMEOUT VALUE  // 给键值对设置过期时间

setex zs 60 live


# ttl key   // 获取键值对剩余的存活时间

ttl zs

Redis哈希(Hash)

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

# hset key field1 value1 [field2 value2]  #同时将多个field-value设置到哈希表key中

hset user name zs age 12 sex nv


# hget key field                          #获取指定的字段值

hget user age


# hdel key field                          #删除指定的字段值

hdel user age


# hgetall key                             #查询指定key的所有字段

hgetall user


# hexists key field                       #查询指定key中的字段是否存在

hexists user name


# hlen key                                #获取指定key中的长度

hlen user

Redis列表(List)

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

# lpush key value1 value2 value3          #将一个或多个值插入到列表头部

lpush en a b c d e f g


# llen key                                #获取列表的长度

llen en


# lindex key index                        #根据索引获取列表中的元素

lindex en 1     #返回f,说明下标从0开始,同时先进后出


# lrange key start sop                    #查看指定范围内的元素

lrange en 1 3   #返回fed,说明下标从0开始,同时先进后出

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

# sadd key value1 [value2]                #向集合添加一个或多个元素

sadd hobby lanqiu zuqiu bingpangqiu zhuoqiu


# scard key                               #获取集合中的元素数量

scard hobby


# exists key                              #是否存在

exists hobby

 

相关实践学习
基于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
相关文章
|
2月前
|
存储 消息中间件 缓存
Redis 简介
10月更文挑战第14天
135 58
|
2月前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
128 1
springboot的缓存和redis缓存,入门级别教程
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
69 8
|
2月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
73 4
|
1月前
|
JavaScript NoSQL Java
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
CC-ADMIN后台简介一个基于 Spring Boot 2.1.3 、SpringBootMybatis plus、JWT、Shiro、Redis、Vue quasar 的前后端分离的后台管理系统
46 0
|
4月前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介
|
4月前
|
NoSQL 算法 安全
Redis6入门到实战------ 四、Redis配置文件介绍
这篇文章详细介绍了Redis配置文件中的各种设置,包括单位定义、包含配置、网络配置、守护进程设置、日志记录、密码安全、客户端连接限制以及内存使用策略等。
Redis6入门到实战------ 四、Redis配置文件介绍
|
4月前
|
NoSQL Redis 数据安全/隐私保护
Redis6入门到实战------ 二、Redis安装
这篇文章详细介绍了Redis 6的安装过程,包括下载、解压、编译、安装、配置以及启动Redis服务器的步骤。还涵盖了如何设置Redis以在后台运行,如何为Redis设置密码保护,以及如何配置Redis服务以实现开机自启动。
Redis6入门到实战------ 二、Redis安装
|
4月前
|
NoSQL Java Redis
Redis6入门到实战------思维导图+章节目录
这篇文章提供了Redis 6从入门到实战的全面学习资料,包括思维导图和各章节目录,涵盖了NoSQL数据库、Redis安装配置、数据类型、事务、持久化、主从复制、集群等核心知识点。
Redis6入门到实战------思维导图+章节目录
|
4月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)