一、概述
1、Redis:REmote DIctionary Server(远程字典服务器)
Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster
是完全开源免费的,用C语言编写的,遵守BSD协议,
是一个高性能的(key/value)分布式内存数据库,基于内存运行
并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,
也被人们称为数据结构服务器
2、Redis 与其他 key - value 缓存产品有以下三个特点
① Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
② Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储
③ Redis支持数据的备份,即master-slave模式的数据备份
注意:
内存中的数据断电消失,但是redis 具有持久化的支撑是RDB \AOF,在重启之后可以再次加载进行使用
二、使用场景
1、内存存储和持久化
redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
2、取最新N个数据的操作
如:可以将最新的10条评论的ID放在List集合
3、 pub/sub 发布/订阅 构建实时消息系统
pubish subscribse PSubscribe命令
4、计数器
INCR和DECR命令
5、定时器
精确设定过期时间
6、 Uniq操作,获取某段时间内所有数据排重值
Set数据类型
7、构建队列系统
使用list可以构建队列系统,使用sort set 甚至可以构建优先级队列
三、官网
redis 的下载直接在官网进行下载
四、下载安装 Redis
前提:在Linux环境或者 VMWare +VMTools 虚拟环境
1、官网安装
Download, extract and compile Redis with:
$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make
The binaries that are now compiled are available in the src directory. Run Redis with:
$ src/redis-server
You can interact with Redis using the built-in client:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
2、CentOS6安装redis
1)、检查安装依赖程序
yum install gcc-c++
yum install -y tcl
yum install wget
2)、线上获取安装文件
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
3)、解压文件
tar -xzvf redis-3.2.8.tar.gz
mv redis-3.2.8 /usr/local/redis
4)、编译安装
cd /usr/local/redis
make
make install
5)、复制配置文件
mkdir -p /etc/redis
cp redis.conf /etc/redis
6)、修改配置文件
vim /etc/redis/redis.conf
仅修改: daemonize yes
Deamonuze 守护进程 类似windows的server ,改为后台启动,如果为no时一关闭窗口,则断开连接
7)、启动 redis 服务
/usr/local/bin/redis-server /etc/redis/redis.conf
ps -ef | grep redis 查看redis是否启动
8)、使用客户端
redis-cli
>set name david
OK
>get name
"david"
9)、关闭命令
redis-cli shutdown
10)、开机自启配置
echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local
参考 https://segmentfault.com/a/1190000002685224
运行make命令时出现的错误解析:
make[3]: gcc: Command not found
make[3]: *** [net.o] Error 127
make[3]: Leaving directory `/opt/redis-2.8.9/deps/hiredis'
make[2]: *** [hiredis] Error 2
make[2]: Leaving directory `/opt/redis-2.8.9/deps'
make[1]: [persist-settings] Error 2 (ignored)
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/opt/redis-2.8.9/src'
make: *** [all] Error 2
情况一:
1)、有网时
yum install gcc-c++
2)、二次make ,出现异常
yum install gcc make
make[1]: Entering directory `/opt/redis-3.2.8/src'
CC adlist.o
在包含自 adlist.c:34 的文件中:
zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required"
make[1]: *** [adlist.o] 错误 1
make[1]: Leaving directory `/opt/redis-3.2.8/src'
make: *** [all] 错误 2
3)、运行make distclean之后再make
4)、如果make完成后继续执行make install
情况二(IOS 镜像中安装gcc)
1)、
2)、下图是关机后,setting选择后重新启动CentOS
3)、在终端中输入 cd /media/CentOS_5.2_Final/CentOS 回车
4)、分别执行如下命令
rpm -ivh cpp-4.1.2-48.el5.i386.rpm回车
rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm回车
rpm -ivh glibc-headers-2.5-49.i386.rpm 回车
rpm -ivh glibc-devel-2.5-24.i386.rpm 回车
rpm -ivh libgomp-4.4.0-6.el5.i386.rpm 回车
rpm -ivh gcc-4.1.2-48.el5.i386.rpm 回车
rpm -ivh glibc-headers-2.5-49.i386.rpm 在有的centos版本中没有,可以忽略
5)、二次make,报告Jemalloc/jemalloc.h:没有那个文件或目录,用make distclean解决
6)、三次make,安装成功
7)、/usr/local/bin目录下看到redis大片相关命令和文件,安装成功
8)、安装成功执行命令和出厂默认配置文件设置与调整
保留出厂默认文件,将它拷贝一份到别处,开始运行Redis