初学Redis简介以及入门

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
简介: 初学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
相关文章
|
1月前
|
NoSQL Redis 数据库
【Redis从入门到入土】布隆过滤器简介、特点和原理
【6月更文挑战第1天】布隆过滤器是一种节省内存的不确定数据结构,用于判断元素是否可能在一个集合中。它由位数组和多个哈希函数组成,能快速插入和查询,但存在误判风险:可能存在假阳性(判断存在但实际不存在),但绝无假阴性(判断不存在则确实不存在)。适用于大规模数据的去重问题,如电话号码判断、安全网站链接检查、黑名单和白名单校验。其工作原理是通过多个哈希函数将元素映射到位数组中,添加时设置相应位置为1,查询时所有位置都为1则可能存在,有0则肯定不存在。由于哈希冲突,可能导致误判,且一旦添加元素无法删除,以避免影响其他元素。
31 4
|
14天前
|
存储 NoSQL Linux
Linux下Redis简介、安装、设置、启动
Linux下Redis简介、安装、设置、启动
19 0
|
22天前
|
存储 缓存 NoSQL
rodert单排学习redis入门【黑铁】2
rodert单排学习redis入门【黑铁】
29 0
|
22天前
|
存储 缓存 NoSQL
rodert单排学习redis入门【黑铁】1
rodert单排学习redis入门【黑铁】
18 0
|
2月前
|
缓存 NoSQL Java
【Redis系列笔记】Redis入门
本文介绍了Redis常用命令,以及SpringBoot集成Spring Data Redis和Spring Cache。Spring Data Redis 提供了对 Redis 的操作方法,而 Spring Cache 则提供了基于注解的缓存功能,可以方便地将方法的返回值缓存到 Redis 中,以提高性能和减少对数据源的访问次数。这样的集成可以帮助开发者更便捷地利用 Redis 来管理应用程序的数据和缓存。
141 4
|
2月前
|
存储 缓存 NoSQL
Redis入门到通关之Redis内存淘汰(内存过期)策略
Redis入门到通关之Redis内存淘汰(内存过期)策略
54 3
|
2月前
|
存储 NoSQL Linux
Redis入门到通关之多路复用详解
Redis入门到通关之多路复用详解
32 1
|
2月前
|
存储 NoSQL Linux
Redis入门到通关之Redis5种网络模型详解
Redis入门到通关之Redis5种网络模型详解
48 1
|
2月前
|
NoSQL Ubuntu 关系型数据库
Redis入门到通关之Redis网络模型-用户空间和内核态空间
Redis入门到通关之Redis网络模型-用户空间和内核态空间
33 1
|
2月前
|
存储 NoSQL 算法
Redis入门到通关之Redis数据结构-Hash篇
Redis入门到通关之Redis数据结构-Hash篇
39 1