Redis 使用

NoSQL数据库基本介绍

  • NoSQL数据库

NoSQL(Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。

NoSQL有如下优点:易扩展,NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

NoSQL 数据库特点:

不遵循SQL标准。
区别于关系数据库,它们不保证关系数据的ACID特性
远超于SQL的性能。

NoSQL适用场景:

对数据高并发的读写
海量数据的读写
对数据高可扩展性的

NoSQL不适用场景:

需要事务支持
基于sql的结构化查询存储,处理复杂的关系,需要即席查询。(用不着sql的和用了sql也不行的情况,请考虑用NoSql)

常见的 NoSQL 数据库

Memcache
在这里插入图片描述
Redis
在这里插入图片描述
MongoDB
在这里插入图片描述

Redis 官网: https://redis.io/

  1. Redis是什么

Redis最直观的认识就是个key-value数据库,可以存储多类型的数据。

  1. Redis的基本介绍

Redis是一个开源的、可基于内存亦可持久化的日志型、高性能的键值对(Key-Value)存储数据库,并提供多种语言的API。Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

Redis 与其他 key - value 缓存产品有以下三个特点:

  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

  • Redis支持数据的备份,即master-slave模式的数据备份。

Redis的优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
  • 原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。

Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。

Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。

在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。

同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。

Redis 默认提供了 16 个数据库. 每个数据库都有一个 id, 从 0 开始,0~15。 每个数据库的数据是隔离的不能共享。

客户端与Redis建立连接后会自动选择 0 号数据库,不过可以随时使用 select 命令更换数据库。

在这里插入图片描述
数据库相关常用命令如下:

select 数据库 id:根据id切换数据库
dbsize:查看当前数据库的key的数量
flushdb:清空当前库的数据
flushall:将全部数据库的数据都清空

key 相关命令

  • Redis 键命令用于管理 redis 的键。

key 相关常用命令如下:

set key value:添加 string 类型的 key,并设置该 key 的 value 值
keys *:查看当前库所有key    (匹配:keys *1)
exists key:判断某个key是否存在。存在返回1,否则返回0
type key:查看你的key是什么类型
del key:删除指定的key。删除成功则输出1,否则输出0
unlink key:异步删除。仅将keys从keyspace元数据中删除,真正的删除会在后续异步操作。
expire key 时间:为给定的key设置过期时间,单位为秒。比如expire key 10,即该 key 在10秒后过期。key 如果不设置过期时间,默认是永不自动过期
ttl key:查看还有多少秒过期。该命令返回 key 有效时间的秒数,如果是 -1 则表示永不过期,-2 则表示已过期。

在这里插入图片描述

更多详情使用,请点击以下网址

Redis 中文网:http://redis.cn/topics/data-types-intro.html#strings

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值