Redis系列之简介及Linux安装
Redis简介
Redis是一个开源(遵循BSD许可协议:是一个给于使用者很大自由的协议,BSD 代码鼓励代码共享,但需要尊重代码作者的著作权),内存数据结构存储,可用作数据库、缓存和消息代理;它支持比较丰富的数据结构,如字符串、散列、列表、集合、带有范围查询的排序集、位图、超级日志,具有半径查询流的地理空间索引。Redis具有内置复制、Lua脚本、LRU(Least Recently Used,最近最少访问淘汰策略)驱逐算法(Redis4.0新增加一种LFU算法【Least Frequently Used,最少访问频率淘汰策略】)、事务和不同级别的磁盘持久化,并通过Redis Sentinel(哨兵模式)提高高可用性并使用Redis Cluster集群自动分区。总而言之,Redis(Remote Dictionary Server[远程数据服务])是一个Key-Value存储系统。
Redis的特点
- 数据结构丰富
- 持久化
- 支持简单事务
- 主从配置方便
Redis与memcached相比的独特之处
- redis可以用来做存储(storage)和缓存(cache),而memchache只能用来做缓存(cache),redis具有持久化的功能
- memcached的存储结构只有一种类型:字符串;而redis则可以存储字符串、链表、哈希结构、集合、有序集合五种数据类型。
Redis在Linux的安装使用
-
指定目录下载Redis源码:wget http://download.redis.io/releases/redis-5.0.4.tar.gz (具体的下载版本可以在官网复制下载链接地址即可)
-
解压redis源码:tar -xzcf redis-5.0.4.tar.gz
-
linux编译redis源码(在解压后得目录里面运行):make (如果是32位机器 make 32bit)
-
可选步骤:make test ,测试编译情况(可能遇到的情况:need tcl>8.5的情况,解决办法: yum -y install tcl)
-
指定目录安装redis:make PREFIX=/usr/local/src/redis install
-
安装之后得到如下几个文件
(1)redis-benchmark 性能测试工具
(2)redis-check-aof 日志问价检测工具(比如断电造成日志损坏,可以检测并修复)
(3)redis-check-dump 快照文件检查工具(比如断电造成日志损坏,可以检测并修复)
(4)redis-cli 客户端
(5)redis-server 服务端 -
复制源文件的redis.conf配置文件过来到安装目录(bin同目录)
-
启动: ./bin/redis-server ./redis.conf
-
连接:./bin/redis-cli
10.修改redis.conf配置文件的daemonize=yes,让其后台运行
redis的协议是基础文本的协议(http,memcached也是)客户端的开发较为简便,redis官方提供了c,java,c#,PHP,lua脚本的客户端
遇到的问题 :(1).Linux编译redis报致命错误:fatal error: jemalloc/jemalloc.h: No such file or directory
分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数,运行如下命令:
make MALLOC=libc
(2)make的时候出现时间错误的问题
原因: 源码是官方configure过的,但官方configure时,生成的文件有时间戳信息,Make只能发生在configure之后,
如果你的虚拟机的时间不对,比如说是2012年
解决: date -s ‘yyyy-mm-dd hh:mm:ss’ 重写时间
再 clock -w 写入cmos