首页 > 数据库 >Redis入门篇(一)

Redis入门篇(一)

时间:2023-11-20 20:32:14浏览次数:43  
标签:缓存 Redis 数据库 redis 入门篇 key 数据

初学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操作系统的安装

img

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

img

安装gcc yum install gcc

img

安装 redis make

img

img

img

img

修改redis.conf文件

cp redis.conf redis_bak.conf

将daemonize no 改为 daemonize yes

img

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

imgimg

杀死进程

img

打开本地解析ip

img

img

设置防火墙开放 6379 端口

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

img

再次重新启动

img

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

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

img

img

然后在 RedisDesktopManager 测试即可

img

2.Windows版本的安装

img

img

在 RedisDesktopManager 测试即可

img

三.语法

img

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

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

标签:缓存,Redis,数据库,redis,入门篇,key,数据
From: https://blog.51cto.com/u_14725510/8491377

相关文章

  • Redis:Key-Value的NoSQL数据库
    Redis:Key-Value的NoSQL数据库(基础)主要内容:数据库分类Redis入门客户端连接RedisRedis数据类型及操作Springboot整合RedisSpringCache学习目标:知识点要求数据库分类熟悉Redis使用场景熟悉Redis下载与安装了解Redis启动关闭掌握客户端连接Redis......
  • redis在idea中的应用
    2023-11-20导入的依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> packagecom.sky.test;importorg.junit.jupiter.api.Test......
  • docker安装及安装redis
    一、安装docker1.准备安装环境:yuminstall-yyum-utils2.设置镜像仓库为阿里云:yum-config-manager\--add-repo\http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3.更新系统yum软件索引:yumcleanallyummakecache4.安装docker:yuminstalldocker-c......
  • 00Redis介绍
    1.1Redis简介Redis,RemoteDictionaryServer,远程字典服务,由意大利人SalvatoreSanfilippo(又名Antirez)开发,是一个使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、NoSQL开源内存数据库,其提供多种语言的API。Redis之所以称之为字典服务,是因为Redis......
  • redis 在windows使用
    1下载软件(包含服务端和客户端)-从官网找安装包下载后文件 redis-server.exe 就是服务端.文件 redis-cli.exe是客户端.   2在cmd中启动服务端 在当前窗口中运行cmd,输入redis-serve为了方便,可以把redis目录加入环境变量,这样任意打开cmd, 输......
  • Centos7安装Redis(超详细)
    ​Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。​下载地址:https://github.com/microsoftarchive/redis/re......
  • 神经网络入门篇:神经网络的梯度下降(Gradient descent for neural networks)
    神经网络的梯度下降在这篇博客中,讲的是实现反向传播或者说梯度下降算法的方程组单隐层神经网络会有\(W^{[1]}\),\(b^{[1]}\),\(W^{[2]}\),\(b^{[2]}\)这些参数,还有个\(n_x\)表示输入特征的个数,\(n^{[1]}\)表示隐藏单元个数,\(n^{[2]}\)表示输出单元个数。在这个例子中,只介绍过的......
  • 三天吃透Redis面试八股文
    目录:Redis是什么?Redis优缺点?Redis为什么这么快?讲讲Redis的线程模型?Redis应用场景有哪些?Memcached和Redis的区别?为什么要用Redis而不用map/guava做缓存?Redis数据类型有哪些?SortedSet和List异同点?Redis的内存用完了会怎样?Redis如何做内存优化?keys命令存在的问题?......
  • 二、Redis架构
    一、持久化机制 clientredis[内存]----->内存数据-数据持久化-->磁盘 Redis官方提供了两种不同的持久化方法来将内存的数据存储到硬盘里面分别是: 快照(Snapshot)AOF(AppendOnlyFile)只追加日志文件1、快照①特点:这种方式可以将某一时刻的所有数据都写......
  • Redis主从有几种常见的拓扑结构?
    Redis的复制拓扑结构可以支持单层或多层复制关系,根据拓扑复杂性可以分为以下三种:一主一从、一主多从、树状主从结构。1.一主一从结构一主一从结构是最简单的复制拓扑结构,用于主节点出现宕机时从节点提供故障转移支持。2.一主多从结构一主多从结构(又称为星形拓扑结构)使得应用端可......