1. 简介
概念
Redis是一个开源的,先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串,哈希,链表,集合和有序集合。
Redis是一个key-value存储系统,它支持存储的value类型很多,包括String(字符串)、list(链表)、set(集合)、zset(有序集合)。这些数据类型都是支持push/pop、add/remove及交集和并集及更丰富的操作的,redis支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中的,但是也是可以周期性的把数据写进磁盘的,或者把修改操作写入追加的记录的文件。
也就是说保存数据存在两种方式:写入数据库,在内存中做个快照。
特点
(1)Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
(2)Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
(3)Redis支持数据的备份,即master-slave模式的数据备份。
不同于其他的key-value存储,Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,应为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
优势
(1)性能极高– Redis能读的速度是110000次/s,写的速度是81000次/s 。
(2)丰富的数据类型– Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 OrderedSets 数据类型操作。
(3)原子– Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
(4)丰富的特性– Redis还支持 publish/subscribe, 通知, key 过期等等特性
2. 下载和安装
下载
从网上下载相应的redis包,下载地址是:https://github.com/dmajkic/redis/downloads
下载到的Redis支持32bit和64bit,可以根据自己的实际需要去选择,之后将需要的版本进行解压,最好安装盘符进行命令比如我的是D:\360安全浏览器下载\redis\64bit,但是最好不要含中文目录,最好的命名是D: \redis\64bit。
如果是Linux的话,下载地址是:http://redis.io/download;里面含有多个版本,最好是下载新的,并且是稳定的版本。
不同于window下下载的redis包,Linux下的包下面是没有redis-server,只有当执行make编译命令后才会出现redis-server。
安装
Window上安装
Redis可以安装在Linux上面也是可以安装在Windows上面的,我们以window为例。
Window上解压的目录是:
启动服务有两种方式:然后双击redis-server.exe即可开启服务端;第二种是使用配置文件启动【redis.conf】输入cmd,输入命令(redis-server.exe redis.conf):
显示的连接数是0:
此时打开一个redis客户端进行服务器的访问,同样是存在两种方式: 双击redis-client.exe即可启动客户端了,另一种方式是redis-cli.exe -h 127.0.0.1 -p 6379;【redis服务的默认端口是6379;mysql数据库的默认端口是3306;而memcached的默认端口是11211】
此时效果图:此时表示连接已经建立(必须切换到redis的目录)
设置键值对(set key1firstRedisExample)和获取键值对(get key1):
至此window下redis安装完毕。
上面命令的执行必须切换到目录下面才是可以,为了方便的话,可以把redis的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个redis.conf可以省略,如果省略,会启用默认的。
Linux上安装
关于Linux下面的安装,由于机器没有安装Linux系统以及虚拟机,在此列出在Linux上操作的命令。
下载安装包:
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
Wget是Linux上的下载命令。
解压redis包:
$ tar xzf redis-2.8.17.tar.gz
切换到解压目录:
$ cd redis-2.8.17
目录结构:
Src下面的类:
此时发现没有redis-server.exe,上面我们已经提到了只要编译后才会生成redis-server命令。
编译命令make:
$ make
make完后redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下。
如何启动服务呢?
切换到安装目录:
$ cd src
Redis-server启动服务:
$ ./redis-server
这是一种以启动默认配置的方式,当然也是可以通过启动参数来告诉redis使用指定的配置文件启动:
$ cd src
$ ./redis-server redis.conf
服务开启后就可以使用测试客户端与服务建立连接,从而进行交互了。
$ cd src
$ ./redis-cli
同理,此时我们可以执行在window下设置的键值,来做测试例子,同样会输出我们上面的结果,大家有条件的就试试吧。
至此Linux下的命令介绍的差不多了,下篇我们主要讲述redis丰富的数据类型,请持续关注~