【redis】Redis简单了解

本文详细介绍了关系型数据库(如MySQL)和非关系型数据库(如NoSQL)的区别。关系型数据库支持SQL查询和事务处理,适合结构化数据;非关系型数据库如键值存储(Redis)则提供快速查询和低成本扩展,适用于高并发场景。NoSQL数据库包括键值、列存储、文档型和图形数据库,各有其特定应用场景和优缺点。Redis作为一种高性能键值对数据库,广泛应用于缓存、任务队列和数据过期处理等场景。
摘要由CSDN通过智能技术生成

关系型数据库、非关系型数据库

关系型数据库优势:

  1. 可以使用SQL语句进行复杂查询。
  2. 事务支持:支持对安全性能要求高的业务。

NoSQL优点:

  1. 成本较低:NoSQL数据库部署简单,基本都是开源软件,和关系型数据库相比价格便宜。
  2. 查询快:NoSQL数据库是基于键值对的,表中的主键和值的对应不需要SQL层解析。将数据存储在缓存中,而关系型数据库是将数据存储在硬盘中,查询速度不及NoSQL。
  3. 数据存储格式丰富:NoSQL以key-value、文档、图片等形式存储数据,关系型数据库只能存储基本类型的数据。
  4. 容易扩展:因为基于键值对,数据之间没有耦合性,容易水平扩展,关系型数据库的多表机制导致扩展艰难。

NoSQL缺点:

  1. 维护有限:新技术对于发展时间较久的关系型数据库而言,维护缺乏工具和资料。
  2. 不提供SQL支持:产生用户学习和使用的成本。
  3. 不支持事务:不提供关系型数据库的事务处理。
  • 使用场景:通常情况下使用关系型数据库进行数据存储,在适合使用NoSQL的时候使用NoSQL,例如备份关系型数据库的数据。

NoSQL

  • 键值(Key-Value)存储数据库

(1)相关产品:Tokyo Cabient/Tyrant、Redis、Voldemort、Berkely DB

(2)应用场景:内容缓存、处理大量数据的高访问负载。

(3)数据模型:一系列键值对。

(4)优点:快速访问。

(5)缺点:存储数据缺少结构化。

  • 列存储数据库

(1)相关产品:Cassandra、HBase、Riak

(2)应用场景:分布式文件系统。

(3)数据模型:以列簇式存储,将同一列数据存在一起。

(4)优点:查找速度快,可扩展性强,更容易进行分布式扩展。

(5)缺点:功能相对比较局限。

  • 文档型数据库

(1)相关产品:CouchDB、MongoDB

(2)应用场景:Web应用(类似于Key-Value,Value结构化)

(3)数据模型:一系列键值对。

(4)优点:数据结构要求不严格。

(5)缺点:查询性能不高并且缺乏统一的查询语法。

  • 图形(Graph)数据库

(1)相关产品:Neo4J、InfoGrid、Infinite Graph

(2)应用场景:社交网络

(3)数据模型:图结构

(4)优点:利用图结构的相关算法。

(5)缺点:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

Redis

非关系型数据库(NoSQL)、C语言开发的开源高性能键值对(Key-Value)数据库。用于解决大规模数据集合多重数据种类带来的问题,尤其是大数据、高并发方面。

数据类型

字符串(Sting):最常用

哈希(hash):map

列表类型(list):linkedlist,支持重复元素

集合类型(set):不允许重复元素

有序集合类型(sortedset):不允许重复元素并且元素有序

应用场景

  1. 缓存:数据查询、短连接、新闻内容、商品内容等
  2. 聊天室的在线好友列表
  3. 任务队列:秒杀、抢购
  4. 应用排行榜
  5. 网站访问统计
  6. 数据过期处理:精确到毫秒
  7. 分布式集群架构中session分离

Redis命令操作

(一)字符串类型

  • 存储
set key value
  • 获取
get key
  • 删除
del key

(二)哈希类型

  • 存储
hset key field value
  • 获取
//获取指定的field对应的值
hget key field
//获取所有的field和value
hgetall key
  • 删除
hdel key field

(三)列表类型

  • 添加:头部添加、尾部添加
lpush key value
rpush key value
  • 获取
//范围获取
lrabge key start end
  • 删除:删除最左边的元素或者最右边的元素,返回删除元素
lpop key
rpop key

(四)集合类型

  • 存储
sadd key value
  • 获取:获取集合中所有元素
//获取集合中所有元素
smembers key
  • 删除:删除集合中的某个元素
srem key value

(五)有序集合类型

每个元素都关联一个double类型的分数,redis通过分数来为集合中的成员进行从小到大的排序。

  • 存储
zadd key score value
  • 获取:范围获取
zrange key start end [widthscores]
  • 删除
zrem key value

(六)通用命令

  • 查询所有的键
keys *
  • 获取:键对应的value的类型
type tey
  • 删除:删除指定的key、value
del key value

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值