Redis入门
Nosql
Nosql = Not Only SQL
泛指非关系型数据库的,随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0是滴啊,尤其是超大规模的高并发的社区,暴露出很多难以克服的问题,Nosql在当今大数据环境下发展的十分迅速,Redis是发展最快的,而且是当下必须要掌握的一门技术!很多数据类型用户的个人信息,社交网络,地理位置,这些数据类型的存储不需要一个固定的格式。<!--more-->
Nosql
不仅仅是数据
没有固定的查询语言
键值对存储,列存储,文档存储,图形数据库(社交关系)
最终一致性
CAP定理和BASE
高性能,高可用,高可拓
四大分类
KV键值对
-
新浪:Redis
-
美团:Redis + Tair
-
BA : Redis + memecache
文档型数据库
-
MongoDB
-
MongoDB是一个基于分布式文件存储的数据库,c++编写,主要用来处理大量文档
-
MongoDB是一个介于关系型数据库和非关系型数据中中间的产物,MongoDB是非关系型数据库中功能丰富,最像关系型数据库
-
-
ConthDB
列存储数据库
-
Hbase
-
分布式文件系统
图关系数据库
-
不是存放图形,存放的是关系,比如:朋友圈社交网络,广告推荐
-
Neo4j,InfoGrid
Redis入门
概述
Redis能干吗
-
内存存储,持久化,内存是断电即失,所以说持久化很重要(rdb,aof)
-
效率高,可以用于高速缓存
-
发布订阅系统
-
地图信息分析
-
计时器,计数器(微信,微博浏览量)
-
....
Linux安装
-
下载安装包 https://redis.io/
-
解压Redis安装包到opt文件夹下
tar -zxvf redis-6.2.5.tar.gz

图1 解压redis到opt目录下
-
基本环境的安装
yum install gcc-c++
gcc -v // 检查版本确定安装成功

图2 检验yum install gcc-c++成功
make
make install
图3 检验make成功

-
redis的默认安装路径是/usr/local/bin
图4 redis默认安装路径

将redis配置文件复制到当前目录下(这里在当前目录下创建一个目录用于存储配置文件)
图5 复制redis.conf所在位置
修改配置文件,将daemonize no
修改为daemonize yes
图6 设置daemonize yes

-
开启redis服务
图7 redis服务开启

redis-benchmark
redis-benchmark是一个压力测试工具
官方自带的性能测试工具
图8 redis-benchmark命令参数

-
开启redis服务
-
进入redis 的目录下
redis-benchmark命令是在 redis 的目录下执行的,而不是 redis 客户端的内部指令。
cd /usr/local/bin
-
执行命令
redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
图9 redis-benchmark压力测试结果

Summary:
throughput summary: 76045.62 requests per second
latency summary (msec):
avg min p50 p95 p99 max
0.736 0.264 0.711 1.055 1.423 3.087
====== INCR ======
100000 requests completed in 1.28 seconds # 对于100000个请求进行写入测试
100 parallel clients # 100个客户端
3 bytes payload # 每次写入三个字节
keep alive: 1 # 只有一台服务器来处理这些请求
host configuration "save": 3600 1 300 100 60 10000
host configuration "appendonly": no
multi-thread: no
Latency by percentile distribution:
0.000% <= 0.287 milliseconds (cumulative count 1)
50.000% <= 0.687 milliseconds (cumulative count 51545)
75.000% <= 0.783 milliseconds (cumulative count 76210)
87.500% <= 0.871 milliseconds (cumulative count 87931)
93.750% <= 0.959 milliseconds (cumulative count 93881)
96.875% <= 1.079 milliseconds (cumulative count 96882)
98.438% <= 1.223 milliseconds (cumulative count 98475)
99.219% <= 1.343 milliseconds (cumulative count 99252)
99.609% <= 1.463 milliseconds (cumulative count 99616)
99.805% <= 1.703 milliseconds (cumulative count 99805)
99.902% <= 1.975 milliseconds (cumulative count 99903)
99.951% <= 2.207 milliseconds (cumulative count 99952)
99.976% <= 2.383 milliseconds (cumulative count 99976)
99.988% <= 2.519 milliseconds (cumulative count 99988)
99.994% <= 2.591 milliseconds (cumulative count 99995)
99.997% <= 2.615 milliseconds (cumulative count 99997)
99.998% <= 2.639 milliseconds (cumulative count 99999)
99.999% <= 2.647 milliseconds (cumulative count 100000)
100.000% <= 2.647 milliseconds (cumulative count 100000)
Cumulative distribution of latencies:
0.000% <= 0.103 milliseconds (cumulative count 0)
0.002% <= 0.303 milliseconds (cumulative count 2)
0.074% <= 0.407 milliseconds (cumulative count 74)
5.577% <= 0.503 milliseconds (cumulative count 5577)
26.117% <= 0.607 milliseconds (cumulative count 26117)
56.678% <= 0.703 milliseconds (cumulative count 56678)
80.060% <= 0.807 milliseconds (cumulative count 80060)
90.774% <= 0.903 milliseconds (cumulative count 90774)
95.379% <= 1.007 milliseconds (cumulative count 95379)
97.271% <= 1.103 milliseconds (cumulative count 97271)
98.351% <= 1.207 milliseconds (cumulative count 98351)
99.009% <= 1.303 milliseconds (cumulative count 99009)
99.493% <= 1.407 milliseconds (cumulative count 99493)
99.672% <= 1.503 milliseconds (cumulative count 99672)
99.758% <= 1.607 milliseconds (cumulative count 99758)
99.805% <= 1.703 milliseconds (cumulative count 99805)
99.846% <= 1.807 milliseconds (cumulative count 99846)
99.888% <= 1.903 milliseconds (cumulative count 99888)
99.909% <= 2.007 milliseconds (cumulative count 99909)
99.933% <= 2.103 milliseconds (cumulative count 99933)
100.000% <= 3.103 milliseconds (cumulative count