Redis是什么
Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value(键值对)数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。(Vmware在资助着redis项目的开发和维护)
什么是BSD协议
BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。
BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。
Nosql : not only sql 不仅仅是sql
关系型数据库 mysql Oracle sqlserver ....
Nosql数据库:非关系型数据库
关系型数据库:大数据量读写速度会很慢,而非关系型数据会很快
并发的情况下:关系型数据库对于高并发支持比较弱
Redis作者
redis的作者,他叫Salvatore Sanfilippo,来自意大利的西西里岛,现在居住在卡塔尼亚。目前供职于Pivotal公司。
github地址:antirez (Salvatore Sanfilippo) · GitHub
NoSQL介绍
NoSQL(Not Only SQL),泛指非关系型的数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis同时还提供多种数据类型存储, String, list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,可以做主从复制和读写分离,集群等高可用功能。
Redis特点:
性能极高 :
Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型:
Redis支持5种数据类型 String, List, Hash, Set 及 Ordered Set(zset) 数据类型操作。
原子
Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性 –
Redis还支持 publish/subscribe(发布订阅), 通知, key 过期等等特性。
Redis是一个简单的,高效的,分布式的,基于内存的缓存工具。
架设好服务器后,通过网络连接(类似数据库),提供Key-Value式缓存服务。
简单,是Redis突出的特色。
简单可以保证核心功能的稳定和优异。
Redis总结
redis单个key 存入512M大小
redis支持多种类型的数据结构(string,list,hash.set.zset)
redis 是单线程 原子性
redis可以持久化 因为使用了 RDB和AOF机制
redis支持集群 而且redis 支持库(0-15) 16个库
redis 还可以做消息队列 比如聊天室 IM
企业级开发中:可以用作数据库、缓存(热点数据(经常会被查询,但是不经常被修改或者删除的数据)和消息中间件等大部分功能。
优点:
1. 丰富的数据结构
2. 高速读写,redis使用自己实现的分离器,代码量很短,没有使用lock(MySQL),因此效率非常高。
缺点:
1. 持久化。Redis直接将数据存储到内存中,要将数据保存到磁盘上,Redis可以使用两种方式实现持久化过程。定时快照(snapshot):每隔一段时间将整个数据库写到磁盘上,每次均是写全部数据,代价非常高。第二种方式基于语句追加(aof):只追踪变化的数据,但是追加的log可能过大,同时所有的操作均重新执行一遍,恢复速度慢。
2. 耗内存,占用内存过高。
Redis安装
官方网站:http://redis.io/
官方下载:http://redis.io/download 可以根据需要下载不同版本
(域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)
Redis安装
Redis是C语言开发,安装Redis需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc
- 安装gcc
gcc的安装很简单,首先要确保root登录,其次就是Linux要能连外网
yum -y install gcc automake autoconf libtool make
注意:运行yum时出现/var/run/yum.pid已被锁定,PID为xxxx的另一个程序正在运行的问题
解决
rm -f /var/run/yum.pid
命令1:下载redis安装包
方式一:
wget http://download.redis.io/releases/redis-4.0.1.tar.gz
方式二:
去https://redis.io/download网站下载
然后使用rz命令上传到服务器上
命令2 tar -zxvf redis-4.0.14.tar.gz
解压后的文件
命令3: cd redis-4.0.14
命令4(编译):make MALLOC=libc
如下图代表成功:
命令5:make PREFIX=/usr/local/redis install
(安装编译后的文件) 安装到指目录:
注意:PREFIX必须大写、同时会自动为我们创建redis目录,并将结果安装此目录
命令6: cd /usr/local/redis 查看
命令7:查看bin目录下,如图:
启动redis
启动服务端
在bin目录下输入
./redis-server
看到如下界面说明启动成功
启动Redis客户端
重新打开一个窗口
进入到bin目录下cd /usr/local/redis/bin
执行:./redis-cli 启动客户端程序
启动Redis 客户端命令:
退出客户端命令:Ctrl+C
执行ping可以测试服务端是否启动