Redis入门学习

目录

一、Redis介绍

二、Linux安装Redis

三、redis的基本操作命令


一、Redis介绍

1.了解Redis开源项目(翻译自来自官方文档)

        Redis是一个开源(BSD许可)的内存数据结构存储,用作数据库、缓存、消息代理和流引擎。Redis提供数据结构,如字符串、散列、列表、集合、带范围查询的排序集合、位图、超日志、地理空间索引和流。Redis具有内置的复制、Lua脚本、LRU驱逐、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供高可用性。

        您可以对这些类型运行原子操作,如附加到字符串;在散列中递增该值;将元素推送到列表中;计算集合交集、并集和差集;或者获得排序集中排名最高的成员。

        为了获得最佳性能,Redis使用内存中的数据集。根据您的使用情况,Redis可以通过定期将数据集转储到磁盘或将每个命令附加到基于磁盘的日志来持久化您的数据。如果您只需要一个功能丰富、联网的内存缓存,也可以禁用持久性。

        Redis支持异步复制,具有快速无阻塞同步和自动重新连接以及网络拆分上的部分重新同步。

        总之,redis是一个基于内存存储的支持数据持久化的非关系型数据库(NoSQL)!

2.SQL和NoSQL数据库对比

2.1数据存储方式

        SQL数据库,如mysql存,数据通常以约定格式分行分页存储在结构化的表格中,表和表之间相互关联,删除数据更改表的结构需要考虑到表和表之间的关系;

        NoSQL数据存储灵活,没有表结构和数据类型的约束,通常以键值对、图结构或者文档等数据集的形式对数据进行统一管理,数据的存储修改更加灵活,由于没有维护数据之间的关系,通常会导致数据重复存储。

2.2SQL规范

       SQL数据库采用结构化查询语言(SQL)来对数据库CRUD(增删改查),SQL作为规范是关系型数据库的行业标准,各大厂商都会遵循该标准去开发数据库,用户学会操作规范就可以使用多各个厂家的产品。

        NoSQL数据库使用的是非结构化查询语言(UnQL),每个数据库厂商提供产品标准是不一样的,CRUD操作的方式也有所不同,如redis用调方法形式(get user:1),MongoDB用调函数的形式(db.user.find({_id:1}))等等。

2.3事务性ACID

        SQL数据库遵循ACID规则(原子性、一致性、隔离性、持久性),关系型数据库的数据强一致性,对事务的支持很好,可以操作事务细粒度和事务的回滚。

        NoSQL数据库遵循BASE原则(基本可用、软/柔性事务、最终一致性),以对事务的支持不是很好,虽然也可以使用事务,但是并不是NoSQL数据库的优势。

2.4性能与应用场景

        SQL数据库为了维护数据的一致性以及数据之间的关联,通常将数据存储在硬盘中,在面对海量数据时候并发读写性能非常差、效率非常低;适用于数据结构固定,对业务数据的安全性一致性较高的场景;SQL数据库的扩展是纵向的,数据存储在关系表中,操作的性能瓶颈是当前计算机操作数据涉及到的多个表的性能,需要通过提升计算机性能来提升对外服务的性能。

        NoSQL数据库通常以内存作为存储载体,读写时无需sql的解析,不强调数据的强一致性,在高并发的情况下能够快速反应;适应于数据结构不固定,数据量大且对一致性要求不高但对读写要求较高的场景;由于数据以多点分布式存储,天然支持横向扩展,增加服务器的数量就能提高对外提供服务的性能。

3.Redis特征

3.1支持多种类型数据存储

        Redis中数据的存储都是采用键值对方式,即一个key对应一个value;key都是字符串类型,而value则有五种类型。

  • String

        String是二进制安全的,即可以存储任何数据、比如数字、图片、序列化对象等;可以是整形、浮点型和字符串;对整个字符串或字符串的一部分进行操作;对整数或浮点数进行自增或自减操作。

  • List

        list是一个双向链表,链表上的每个节点都包含一个字符串,链表的两端都可以进行push和pop操作,可用作栈,队列等;该结构使得数据的插入和删除效率较高

  • Hash

       hash类型,本质上是一个类似于哈希表的二维数组,而每个value(即field)中又存储了一个无序字典;特殊的结构使得hash类型特别适用于存储对象,可以对对象的单个属性做更改。

  • set

        类似于Java中的HashSet,可以看成是一个value为null的Hashmap,k-v都被存储在Hashmap的key中,元素不可重复,其查询的效率较高,支持交集、并集、差集等功能。

  • Sorted Set (zset)

        和set结构特点基本一直,不同的是每个元素都会附上一个 double 类型的权重参数(score),使集合中的元素能够按score进行有序排列,成为一个有序的不可重复集合。

3.2单线程,原子性

3.3基于内存,IO多路复用

3.4支持数据持久化

3.5支持分片和主从集群

二、Linux安装Redis

1.下载安装包Download | Redis,这里以redis6.2.7为例,下载完成后导入到linux服务器中

2.解压到安装路径,以/opt/redis路径为例,解压完成共19个文件,注意以下两个文件

配置文件redis.config

运行脚本工具utils/utils/redis_init_script

tar -zxvf redis-6.2.7.tar.gz -C /opt/redis/

3. 安装gcc环境,查看版本

yum -y install gcc-c++
gcc -v

 4.升级gcc到高版本,CentOS7默认安装的4.8版本不满足redis6.2.7的gcc5.3以上的环境要求

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash

 5.编译安装,如果不设置安装路径,执行命令默认安装在/usr/local/bin目录下

注意:/usr/local/bin目录为系统环境变量,安装后在任意目录都可以启动redis的客户端和服务端,如果指定了别的安装目录,自行添加环境变量即可。

make
make install

 6.将配置文件拷贝到执行命令/usr/local/bin目录下,并设置后台启动

cp redis.conf /usr/local/bin
vi /usr/local/bin/redis.conf

 7.启动redis服务,查看进程

注意:启动服务端时指定刚刚修改的配置文件

redis-server /usr/local/bin/redis.conf
ps -ef | grep redis

 8.启动/关闭客户端

redis.cli
quit

三、redis的基本操作命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值