缓存技术—redis

一、redis介绍

1.什么是NoSQL

NosQL (Not-Only:sQL),泛指非关系型的数据库(关系型数据库: 以二维表形式存储数据)

非关系型的数据库现在成了一个极其热门的新领域,发展非常迅速。而传统的关系数据库在应付超大规模和高并发的网站已经显得力不从心,暴露了很多难以克服的问题,NOSOL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。例如:Highperformance-·对数据库高并发读写的需求;

对于每秒要达到上万次读写请求。关系数据库应付上万次 SOL 查询还勉强顶得住,但是应付上万次 SOL 写数据请求,硬盘I0 就已经无法承受了。"

一些主流的NOSQL产品:

NoSQL数据库的四大分类如下:

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

相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

典型应用:内容缓存,主要用于处理大量数据的高访问负载。

数据模型:一系列键值对

优势:快速查询

劣势:存储的数据缺少结构化

2.列存储数据库

相关产品:Cassandra, HBase, Riak

典型应用:分布式的文件系统

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

优势:查找速度快,可扩展性强,更容易进行分布式扩展

劣势:功能相对局限

3.文档型数据库

相关产品:CouchDB、MongoDB

典型应用:Web应用(与Key-Value类似,Value是结构化的)

数据模型:一系列键值对

优势:数据结构要求不严格

劣势:查询性能不高,而且缺乏统一的查询语法

4.图形(Graph)数据库

相关数据库:Neo4J、InfoGrid、Infinite Graph

典型应用:社交网络

数据模型:图结构

优势:利用图结构相关算法。

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

2.redis历史发展

2008 年,意大利的一家创业公司 Merzia 推出了一款基于 MysQL的网站实时统计系统 LLOOGG,然而没过多久该公司的创始人·Salvatore·Sanfilippo 便对 MySQL 的性能感到失望,于是他决定亲自为 LLOOGG 量身定做一个数据库,并于2009 年开发完成,这个数据库就是 Redis。不过 Salvatore-Sanfilippo 并不满足只将 Redis 用于 LLOOGG 这一款产品,而是希望更多的人使用它,于是在同一年 Salvatore· Sanfilippo 将 Redis 开源发布,并开始和 Redis 的另一名主要的代码贡献者 Pieter·Noordhuis 一起继续着 Redis 的开发,直到今天。

"Salvatore Sanflippo 自己也没有想到,短短的几年时间,Redis 就拥有了庞大的用户群体。在 2012 年一份数据库的使用情况调查,结果显示有近12%的公司在使用 Redis。国内如新浪微博、街旁网、知乎网,国外如GitHub、Stack-Overflow.Flickr 等都是 Redis 的用户。"

VMware 公司从 2010 年开始赞助 Redis 的开发,· Salvatore·Sanfilippo 和 ieter Noordhuis 也分别在3 月和5月加入VMware,全职开发 Redis。

3.什么是redis

Redis 是用 C 语言开发的一个开源的高性能键值对 (key-value)数据库。redis 是将数据存放到内存中,由于内容存取速度快所以 redis,被广泛应用在互联网项目中
优点: 存取速度快,官方称读取速度会达到 30 万次每秒,写速度在 10 万次每秒最有,具体限制于硬件缺点:对持久化支持不够良好,所以 redis.一般配合传统的关系型数据库使用。"

4.redis应用场景

缓存(数据查询)。(最多使用)

分布式集群架构中的 session 分离。

聊天室的在线好友列表。

任务队列。 (秒杀、抢购、12306 等等)

网站访问统计。

二、redis多数据库测试

一个Redis实例可以包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql中创建多个数据库,客户端连接时指定连接哪个数据库。

一个redis实例最多可提供16个数据库,下标从0 到15 ,客户端默认连接第0号数据库,也可以通过select选择连接哪个数据库,如下连接1号库:

在1号库中查询上节设置的数据,结果查询不到:

重新选择第0号数据库,查询数据:

如果选择一个不存在数据库则会报错:

注意:redis 不支持修改数据库的名称,只能通过select 0 、select 1... 选择数据库。

注意:

在0号数据库存储数据,在1号数据库执行清空数据命令却把0号数据库的数据给清空了:

建议:不同的应用系统要使用不同的redis 实例而不是使用同一个redis 实例下的不同数据库。

相关推荐
YOU OU2 小时前
Redis基础常识与命令
数据库·redis·缓存
Database_Cool_4 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森5 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_5 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白6 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面6 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧6 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈6 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy6 小时前
log4net 数据库存日志正确配置
数据库