redis详解

201 阅读3分钟

1.redis特点

1.1方便扩展(数据之间没有关系,很好扩展!)

1.2大数据量高性能(Redis1秒写8万次,读取11万次,NoSQL的缓存记录级,是一种细粒度的缓存,性能比较高!)

1.3数据类型是多样性的(不需要事先设计数据库!随取随用!如果是数据量十分大的表,很多人就无法设计了!)

1.4传统RDBMS和NoSQL

传统的RDBMS
-结构化组织
-SQL
-数据和关系都存在单独的表中
-操作操作,数据定义语言
-严格的一致性
-基础的事务

NoSql
-不仅仅是数据
-没有固定的查询语言
-键值对存储,列存储,文档存储,图形数据库(社交关系)
-最终一致性
-CAP定理和BASE
-高性能,高可用,高扩展

2.大数据的3V+3高

海量Volume
多样Variety
实时Velocity
高并发
高可拓
高性能

3淘宝技术简单介绍

 1.商品的基本信息
关系型数据库就可以解决

2.商品的描述以及评论(文字居多)
文档数据库即可,MongoDb

3.图片
分布式文件系统 FastDFS
-淘宝自己的 TFS
-Google GFS
-Hadoop HDFS
-阿里云的 oss

4.商品关键字(搜索)
-搜索引擎 solr elasticsearch
-ISearch 

5.商品热门的波断信息
-内存数据库
-Redis Tair Memache

6.商品的交易,外部的支付接口
-三方应用

4.NoSQL的四大分类

KV键值对:

  • 新浪:Redis
  • 美团:Redis+Tail
  • 阿里、百度: Redis+memcache

文档型数据库:

  • MongoDB
  • MongoDB是一个基于分布式文件存储的数据库,用C++编写,主要用来处理大量的文档
  • MongoDB是一个介于关系型数据库和非关系型数据库中中间的产品!MongoDb是非关系型数据库中功能最丰富,最像关系型数据库的!

列存储数据库

  • HBase
  • 分布式文件系统

图关系数据库

  • 他不是存图形,放的是关系,比如:朋友圈社交网络,广告推荐
  • Neo4j,InfoGrid;

5.redis概述

Redis(Remote Dictionary Server ),即远程字典服务

redis能干嘛

a.内存存储,持久化,内存是断电既失,所以说持久化很重要(rdb和aof)

b.效率高,可以用于高速缓存

c.发布订阅系统

d.地图信息分析

e.计数器,计时器(浏览量)

redis特性

a.多样的数据类型

b.持久化

c.集群

d.事务

6.安装redis

1.下载tar文件解压文件

2.输入yum install gcc-c++命令安装c++环境,进入redis安装目录,执行make命令(会花一点时间),然后执行make install

3.redis的默认安装路劲是/usr/local/bin(类似于windows的默认安装路劲)

4.redis默认不是后台启动的,在配置文件中修改为daemonize yes

5.启动redisredis-server keboconfig/redis.conf

6.连接redis redis-cli -p 6379

7.查看redis的进程是否开启 ps -ef|grep redis

8.结束redis命令,在redis-cli中输入shutdown即可

7.redis性能测试

redis-benchmark -h localhost -p 6379 -c 100 -n 1000 c是并发数,n是请求数

8.redis基础知识

redis有16个数据库,默认使用的是第0个数据库,可以使用select进行切换数据库

清除当前数据库 flushdb

查看当前所有的key值keys *

清楚所有数据库 flushall

redis是单线程的!

明白redis是很快的,官方表示,redis是基于内存操作,CPU不是Redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽。

redis为什么是单线程还这么快?

redis是C语言写的,官方提供的数据为100000+的QPS,完全不比同样是使用key-value的Memecache差!

redis是将所有的数据全部放在内存中,所以使用单线程去操作效率就是最高的,多线程(CPU上下文会切换,耗时的操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳方案!