Redis简介与Linux安装
一、Redis简介:
-
Redis简介:Redis(REmote DIctionary Server)是开放源代码(BSD1许可)的内存中数据结构存储,用作数据库,缓存和消息代理(是一个高性能的 key-value 数据库)。Redis提供数据结构,例如 符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets),带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU逐出,事务和不同级别的磁盘持久性,并通过以下方式提供高可用性:Redis Sentinel和Redis Cluster自动分区。可以对这些类型运行原子性操作2,例如追加到字符串; 在哈希中增加值; 将元素推送到列表; 计算集的交集, 并集和差; 或在排序的集合中获得排名最高的成员。
-
Redis特点:
(1)Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
(2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
(3)Redis支持数据的备份,即master-slave模式的数据备份。 -
Redis优势:
(1)性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
(2)丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
(3)原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
(4)丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 -
Redis存储特点:
(1)Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象
(2)Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
一个具有注脚的文本。
二、Linux安装Redis:
- 下载地址:https://redis.io/download
- 安装步骤:
1、# 安装gcc(编译环境)
2、yum install gcc
3、# 把下载好的redis放在某个文件夹下(这里的文件是/usr/local,版本为redis-5.0.3.tar.gz)
4、解压:wget http://download.redis.io/releases/redis-5.0.3.tar.gz
5、tar xzf redis-5.0.3.tar.gz
6、cd redis-5.0.3
7、# 进入到解压好的redis-5.0.3目录下,进行编译与安装
8、make
9、# 启动并指定配置文件
10、src/redis-server redis.conf
(注意要使用后台启动,所以需要用vim redis.conf
修改redis.conf里的daemonize改为yes)
11、# 验证启动是否成功
12、ps -ef | grep redis
13、# 进入redis客户端
14、src/redis-cli
15、# 退出客户端
16、quit
17、# 退出redis服务
(1)pkill redis-server
(2)kill 进程号
(3)src/redis-cli shutdown
三、windows安装Redis:
1、下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。下载地址:https://github.com/tporadowski/redis/releases。
2、打开文件夹,如下
3、打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:
redis-server.exe redis.windows.conf
4、另启一个 cmd 窗口,原来的不要关闭,不然就无法访问服务端了。切换到 redis 目录下运行:
redis-cli.exe -h 127.0.0.1 -p 6379
5、设置键值对:
set myKey abc
6、取出键值对:
get myKey
BSD
BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。
BSD开源协议:是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:
(1) 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。
(2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
(3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。
BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。 ↩︎原子性:指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行。(原子性是指在一次操作或者多次操作中,要么所有的操作全部都得到了执行并且不会受到任何因素的干扰而中断,要么所有的操作都不执行,多个操作是一个不可以分割的整体。) ↩︎