Redis简介
REDIS数据库为NOSQL的其中一种,又称为REDIS缓存。
- 80%的系统瓶颈主要出现在数据库一侧 --(海量并发下,网络、磁盘IO开销会导致数据库性能出现瓶颈) --(海量数据下,数据查找可能需要关联上千张表、遍历数千万的数据、花费几分钟) 为了减少数据库压力,提升访问速度,我们需要用到读取速度更快的高性能缓存框 架。
- 常用的缓存框架有哪些 --EHCache 高性能 轻量 系统内嵌 --Memcached 多线程 高性能 系统内嵌 --Redis 分布式 高性能 持久化
Redis是什么?
- REDIS是Remote Dictionary Server的缩写,是一个开源的高性能的Key-Value 存储系统,独立的进程服务,它使用字典结构存储数据,并允许其他应用 通过TCP协议读写字典中的内容。
- REDIS提供了丰富的数据结构以及对这些数据结构的操作支持。
- REDIS可以替代Memcached,并且解决断电后数据丢失的问题。
- REDIS的官方网站:http://redis.io
简单来说,Redis是一个基于键值的存储在内存的NoSql数据库,主要用来作为缓存使用。
Redis的特性
- 速度快
- 持久化
- 多种数据结构
- 支持多种编程语言
- 功能丰富
- 源码简单
- 主从复制
- 高可用分布式
速度快
1、什么语言编写的?
--- C语言 3万多行
2、数据存储在哪儿?
---系统内存中
官方测试:
在50个并发的情况下请求10万次,写的速度是11W次/s,读的速度是8.1W次/s
测试环境:
1、LINUX2.6内核 Xeon X3320 2.5GHz服务器
2、读和写大小为256bytes的字符串
持久化
REDIS所有数据保持在内存中,为了保持断电不丢数据,也提供持久化的支持,将内存中的数据的异步写到磁盘上,同时不影响继续提供服务。
1、机器断电
2、磁盘故障
3、服务重启
数据结构
REDIS支持多种丰富的数据结构:
1、字符类型 2、散列类型 3、列表类型 4、集合类型 5、有序集合
多编程支持
REDIS具有丰富的客户端,支持现阶段流行的大多数编程语言:
1、JAVA
2、PHP
3、C#
4、C++
5、PYTHON
6、RUBY
7、NODEJS ....
JAVA常用的是Jedis (http://redis.io/clients)
功能丰富
Redis在很多场合是名副其实的多面手,越来越多的人将其用作缓存、队列系统中。例如,Redis可作为缓存系统,并且可以为每个键设置生存时间,生存时间到期后键会自动删除;Redis还支持“发布/订阅”的消息模式,等等
足够简单
REDIS使用相对简单,源代码量共23000行,定制化开发相对容易
主从复制
企业项目使用REDIS上线,考虑到单节点REDIS的高可靠性。
1、主节点 2、备节点 ....
官方主从复制速度:SLAVE在21秒即完成了对AMAZON网站10g的 key、set复制。
集群分布
企业大规模使用REDIS过程中会受限于多个方面:
1、单机内存有限 2、带宽压力 3、单点问题 4、动态扩容 ....
安装配置
Redis安装
1.WINDOWS系统REDIS单节点服务器安装
REDIS官方建议服务器安装到LINUX系统,默认更新LINUX REDIS系统包。 学习入门简易性开发便捷性在WINDOWS安装:(安装MSI或解压ZIP文件夹),如下图:
- Windows下的安装几乎没有什么过程,解压后就可以使用。简单介绍下着几个exe文件的用途:
- redis.windows.conf --Redis的配置文件
- redis-benchmark.exe --Redis性能测试工具
- redis-check-aof.exe --AOF文件修复工具
- redis-check-dump.exe --RDB检查数据库文件
- redis-cli.exe --redis命令行客户端
- redis-server.exe --redis服务器
1、 redis-server 双击运行或者用dos命令打开都可以,成功运行后可以看到界面内容如下
会带有版本号、运行进程号、运行端口信息。并且会提醒使用redis.windows.conf配置文件(个别系统必须指定配置文件)。
1、 正常启动方式就是带指定redis.conf配置文件的启动方式,如下:
2、如果准备长期使用,可注册为系统服务
- 注册安装系统服务,DOS命令:
- redis-server.exe --service-install redis.conf --service-name 服务名
- redis-server --service-start --service-name 服务名
- 停止卸载系统服务,DOS命令:
- redis-server --service-stop --service-name 服务名
- redis-server --service-uninstall --service-name 服务名
如何判断服务是否正常已经启动?
DOS命令行中输入:netstat -aon|findstr "6379"