简介
Redis 是用C语言开发完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 与其他 key - value 缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
特点
性能极高
Redis能读的速度是110000次/s,写的速度是81000次/s 。
丰富的数据类型
Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
原子
Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来。
丰富的特性
Redis还支持 publish/subscribe, 通知, key 过期等等特性。
对比
Redis与其他key-value存储有什么不同?
原子性操作
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径。Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象。
数据量不能大于硬件内存
Redis运行在内存中但是可以持久化到磁盘,所以在对不同数据集进行高速读写时需要权衡内存,因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是,相比在磁盘上相同的复杂的数据结构,在内存中操作起来非常简单,这样Redis可以做很多内部复杂性很强的事情。同时,在磁盘格式方面他们是紧凑的以追加的方式产生的,因为他们并不需要进行随机访问。
应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)
如果你考虑保持一些中间数据,但是使用数据库又太重,清理太麻烦,那么redis是你的首选解决方案。
安装
主要记录linux版本,附录windows和mac版本操作步骤。
linux安装redis
###安装
选择版本,进入官网地址: http://redis.io/download 我们使用redis-3.0稳定版,因为redis从3.0开始增加了集群功能。
使用命令
#进入到安装目录
cd /usr/local
wget http://download.redis.io/releases/redis-3.0.0.tar.gz
tar -zxvf redis-3.0.0.tar.gz
cd redis-3.0.0
#安装到指定目录 如 /usr/local/redis
make PREFIX=/usr/local/redis install
#redis.conf是redis的配置文件,redis.conf在redis源码目录。
#拷贝配置文件到安装目录下
#进入源码目录,里面有一份配置文件 redis.conf,然后将其拷贝到安装路径下
cd /usr/local/redis
cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin
#进入安装目录bin下
cd /usr/local/redis/bin
ll
此时我们看到的目录结构是这样的
redis-benchmark redis性能测试工具
redis-check-aof AOF文件修复工具
redis-check-rdb RDB文件修复工具
redis-cli redis命令行客户端
redis.conf redis配置文件
redis-sentinal redis集群管理工具
redis-server redis服务进程
###启动redis
前端模式启动
直接运行bin/redis-server将以前端模式启动,前端模式启动的缺点是ssh命令窗口关闭则redis-server程序结束,不推荐使用此方法
./redis-server
###后端模式启动
修改redis.conf配置文件, daemonize yes 以后端模式启动
vi /usr/local/redis/bin/redis.conf
将daemonize no修改成daemonize yes
如图:
执行如下命令启动redis:
cd /usr/local/redis
./bin/redis-server ./bin/redis.conf
###连接redis
/usr/local/redis/bin/redis-cli
以上命令将打开以下终端:
redis 127.0.0.1:6379>
127.0.0.1 是本机 IP ,6379 是 redis 服务端口。现在我们输入 PING 命令和尝试设置获取key和value。
redis 127.0.0.1:6379> ping
PONG
redis> set foo bar
OK
redis> get foo
"bar"
###关闭redis
强行终止redis进程可能会导致redis持久化数据丢失。正确停止Redis的方式应该是向Redis发送SHUTDOWN命令,命令为:
cd /usr/local/redis
./bin/redis-cli shutdown
###强行终止redis
pkill redis-server
###让redis开机自启
vi /etc/rc.local
//添加
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
##mac安装redis
方式一
官网http://redis.io/
下载最新的稳定版本,这里是3.2.0
sudo mv redis-3.2.0.tar /usr/local/
#解压文件
sudo tar -zxf redis-3.2.0.tar
#进入解压后的目录
cd redis-3.2.0
#测试编译
sudo make test
sudo make install
方式二
mac 下安装也可以使用 homebrew,homebrew 是 mac 的包管理器。
执行
brew install redis
启动 redis,可以使用后台服务启动
brew services start redis
或者直接启动
redis-server /usr/local/etc/redis.conf
##Window安装redis
下载地址:https://github.com/MSOpenTech/redis/releases。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘,解压后,将文件夹重新命名为 redis。
打开一个 cmd 窗口 使用cd命令切换目录到 C:\redis 运行 redis-server.exe redis.windows.conf 。
如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面:
这时候另启一个cmd窗口,原来的不要关闭,不然就无法访问服务端了。
切换到redis目录下运行 redis-cli.exe -h 127.0.0.1 -p 6379 。
设置键值对 set myKey abc
取出键值对 get myKey