【Java进阶营】Redis6--概述

一、NoSQL概述

1、什么是NoSQL

(1)NoSQL = Not Only SQL(不仅仅是SQL)

(2)关系型数据库:表格,行,列

(3)随着web2.0互联网的诞生!传统的关系型数据库很难对付web2.0时代,尤其是超大规模的高并发的社区!暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是我们当下必须要掌握的一个技术

(4)很多的数据类型用户的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式、不需要多余的操作就可以横向扩展的! Map<String,Object>使用键值对来控制

2、NoSQL的特点

(1)方便扩展(数据之间没有关系,很好扩展!)
(2)大数据量高性能(Redis一秒写8万次,读取11万,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高!)
(3)数据类型是多样型的(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无法设计了! )

image

真正在公司中的实践:NoSQL + RDBMS一起使用才是最强的,阿里巴巴的架构演进

3、阿里巴巴的架构演进

image

二、NoSQL四大分类

1、键值数据库

相关产品:Redis、Riak、SimpleDB、Chordless、Scalaris、Memcached
应用:内容缓存
优点:扩展性好、灵活性好、大量写操作时性能高
缺点:无法存储结构化信息、条件查询效率较低
使用者:百度云(Redis)、GitHub(Riak)、BestBuy(Riak)、Twitter(Ridis和Memcached)

2、列族数据库

相关产品:BigTable、HBase、Cassandra、HadoopDB、GreenPlum、PNUTS
应用:分布式数据存储与管理
优点:查找速度快、可扩展性强、容易进行分布式扩展、复杂性低
使用者:Ebay(Cassandra)、Instagram(Cassandra)、NASA(Cassandra)、Facebook(HBase)

3、文档数据库

相关产品:MongoDB、CouchDB、ThruDB、CloudKit、Perservere、Jackrabbit
应用:存储、索引并管理面向文档的数据或者类似的半结构化数据
优点:性能好、灵活性高、复杂性低、数据结构灵活。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多
缺点:缺乏统一的查询语言
使用者:百度云数据库(MongoDB)、SAP(MongoDB)

4、图形数据库

相关产品:Neo4J、OrientDB、InfoGrid、GraphDB
应用:大量复杂、互连接、低结构化的图结构场合,如社交网络、推荐系统等
优点:灵活性高、支持复杂的图形算法、可用于构建复杂的关系图谱
缺点:复杂性高、只能支持一定的数据规模
使用者:Adobe(Neo4J)、Cisco(Neo4J)、T-Mobile(Neo4J)

三、Redis入门

1、是什么

(1)Redis ( Remote Dictionary Server ),即远程字典服务!
(2)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库
(3)并提供多种语言的API。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

2、能做什么

(1)内存存储、持久化,内存中是断电即失、所以说持久化很重要( rdb、aof )
(2)效率高,可以用于高速缓存
(3)发布订阅系统
(4)地图信息分析
(5)计时器、计数器(浏览量!)
(6)…

3、特性

(1)多样的数据类型
(2)持久化
(3)集群
(4)事务

4、基础知识 ★

(1)切换数据库 16个 [0-15]

127.0.0.1:6379[15]> select 7
OK
127.0.0.1:6379[7]> 

(2)查看数据库大小

127.0.0.1:6379[7]> DBSIZE
(integer) 0
127.0.0.1:6379[7]> set name mykk
OK
127.0.0.1:6379[7]> DBSIZE
(integer) 1

(3)查看所有 key

127.0.0.1:6379[7]> keys *
1) "name"

(4)清空当前数据库:flushdb

(5)清空全部数据库

127.0.0.1:6379[7]> FLUSHALL
OK
127.0.0.1:6379[7]> keys *

exists key判断某个key是否存在
type key 查看你的key是什么类型
del key       删除指定的key数据
unlink key   根据value选择非阻塞删除
仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
expire key 10   10秒钟:为给定的key设置过期时间
ttl key 查看还有多少秒过期,-1表示永不过期,-2表示已过期

5、Redis 是单线程 + 多路IO复用 ★

image

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值