初学Redis简介以及入门

🏅我是默,一个在CSDN分享笔记的博主。📚📚

🌟在这里,我要推荐给大家我的专栏《Linux》。🎯🎯

🚀无论你是编程小白,还是有一定基础的程序员,这个专栏都能满足你的需求。我会用最简单易懂的语言,带你走进代码的世界,让你从零开始,一步步成为编程大师。🚀🏆

🌈让我们在代码的世界里畅游吧!🌈

🎁如果感觉还不错的话请记得给我点赞哦!🎁🎁

💖期待你的加入,一起学习,一起进步💖💖

一.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
相关推荐
CodeClimb几秒前
【华为OD-E卷-木板 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
咸鱼翻面儿4 分钟前
Javascript异步,这次我真弄懂了!!!
javascript
brrdg_sefg5 分钟前
Rust 在前端基建中的使用
前端·rust·状态模式
CT随11 分钟前
Redis内存碎片详解
java·开发语言
o(╥﹏╥)13 分钟前
在 Ubuntu 上安装 VS Code
linux·运维·vscode·ubuntu·vs
anlog20 分钟前
C#在自定义事件里传递数据
开发语言·c#·自定义事件
做梦敲代码24 分钟前
达梦数据库-读写分离集群部署
数据库·达梦数据库
m0_7482309429 分钟前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
奶香臭豆腐33 分钟前
C++ —— 模板类具体化
开发语言·c++·学习
qq_5895681037 分钟前
Echarts的高级使用,动画,交互api
前端·javascript·echarts