Redis环境搭建(MacOS)
Redis
是一个开源的key-value
类型的存储系统,大部分数据存在于内存中,所有读写速度十分快。其支持的存储value
数据类型有多种,如:strings
、hashes
、lists
、sets
、sorted sets
等等,这些数据类型都支持push/pop
、add/remove
等丰富的操作,并且是原子性的。此外,redis
还支持周期性的更新数据到磁盘或者追加到记录文件,来实现master-slave
数据同步的功能。
在MacOS
系统上安装redis
的方式有多种,可以用homebrew
一键安装:
$ brew install redis
如果提示权限问题,请使用
sudo brew install redis
此种方法不再介绍。下面来介绍一下源码安装的方式:
一、编译源码
1. 下载源码
源码地址:https://redis.io/
首先需要到redis
官网下载源码,然后解压,如果是在终端里解压,可以使用如下命令,解压到当前目录:
$ tar -zxf redis-4.0.0
![图1](//upload-images.jianshu.io/upload_images/1843940-dd0a84ac3947d096.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 编译
redis
是C
语言开发的系统,需要gcc
的编译器,如果没有C
的编译器,可以用homebrew
安装一下:
$ brew install gcc
redis
里包含了makefile
,简化了编译步骤,直接使用make
就可以编译:
$ make
![图2](//upload-images.jianshu.io/upload_images/1843940-b7bed7d6e9340c52.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
二、安装redis
在编译完成后,需要把redis
的命令安装到/usr/local/bin
目录中,可以直接使用make install
命令,如果希望安装到指定目录,需要指定PREFIX
的目录。
1. 安装
make PREFIX=/usr/local/redis-4.0.0 install
如果/usr/local
目录下没有redis-4.0.0
的目录,需要创建,如果在终端中直接使用mkdir redis-4.0.0
出现提示权限问题,则可以在图形化界面中创建,但是需要输入密码,这样创建的目录的owner
用户是当前用户,而不是root
用户,因为root
用户在后面需要自动创建日志文件时会遇到权限的问题。
PREFIX=/usr/local/redis-4.0.0
表示指定redis
的安装目录
2. redis配置
把源码目录下的redis.conf
文件拷贝到/usr/local/redis-4.0.0/etc
目录下,然后按如下提示修改代码:
#修改为守护模式
daemonize yes
#设置进程锁文件
pidfile /usr/local/redis/redis.pid
#端口
port 6379
#客户端超时时间
timeout 300
#日志级别
loglevel debug
#日志文件位置
logfile /usr/local/redis/log-redis.log
#设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 8
##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save <seconds> <changes>
#Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
#可以关闭该#选项,但会导致数据库文件变的巨大
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#指定本地数据库路径
dir /usr/local/redis/db/
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
#的数据会在一段时间内只存在于内存中
appendonly no
#指定更新日志条件,共有3个可选值:
#no:表示等操作系统进行数据缓存同步到磁盘(快)
#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
#everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
三、使用redis
在redis
的官网上面有教程,可以参考学习。
启动redis
服务(在redis-4.0.0
目录下):
$ ./bin/redis-server etc/redis.conf
启动redis
客户端:
$ ./bin/redis-cli
另外,我们也可以查看redis
的日志文件log-redis.log
,可以看到redis
的操作变化。
$ tail -f log-redis.log
redis
的环境搭建如上所示,在如今的服务器应用开发过程中,用redis
做缓存的应用还是十分广泛的,文中不足之处,还望互相交流学习。
参考资料
Redis环境搭建(MacOS)的更多相关文章
- Redis环境搭建和代码测试及与GIS结合的GEO数据类型预研
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 1.1传统MySQL+ Memcached架构遇到的问题 My ...
- redis环境搭建及一主二从三哨兵模式配置
一.单机redis环境搭建 1.安装: OS:linux redhat6.5 下载redis 官网下载链接:https://redis.io/download 把安装包上传到服务器,进行解压 [roo ...
- nginx + lua +redis环境搭建
环境搭建,其实主要是lua的环境,这个环境够麻烦的,在网上找了很多前辈的文章,终于完成了 ,安装redis wget http://download.redis.io/releases/redis-3 ...
- django+celery+redis环境搭建
初次尝试搭建django+celery+redis环境,记录下来,慢慢学习~ 1.安装apache 下载httpd-2.0.63.tar.gz,解压tar zxvf httpd-2.0.63.tar. ...
- Redis环境搭建(Linux)
1.简介 redis是一个开源的key-value数据库.它又经常被认为是一个数据结构服务器.因为它的value不仅包括基本的string类型还有 list,set ,sorted set ...
- 一.redis 环境搭建
1.简介 redis是一个开源的key-value数据库.它又经常被认为是一个数据结构服务器.因为它的value不仅包括基本的string类型还有 list,set ,sorted set ...
- Redis环境搭建
一.准备的安装包 windows虚拟机软件:VMware Workstation Pro 12 linux安装文件:CentOS-7-x86_64-Minimal-1511.iso 远程登录软件:pu ...
- 浅谈基于Linux的Redis环境搭建
本篇文章主要讲解基于Linux环境的Redis服务搭建,Redis服务配置.客户端访问和防火强配置等技术,适合具有一定Linux基础和Redis基础的读者阅读. 一 Redis服务搭建 1.在根路径 ...
- redis - 环境搭建(转)
一:简介(来自百科) redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zse ...
随机推荐
- mysql中exists、not exists的用法
exists 关键字是判断是否存在的,存在则返回true,不存在则返回false, not exists则是不存在时返回true,存在返回false: 1. 最常用的if not exists用法: ...
- MD5加盐 Java加密算法
MD5带盐值的java加密算法 import java.security.MessageDigest; public class PasswordEncoder { private final s ...
- 详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作
总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. ...
- MySQL存储写入性能严重抖动分析
案例描述: 通过iostat发现存储的写性能长期维持在10MB左右,而且因为写性能差已经导致数据库性能变差: 两个小时以后,iostat发现系统的写性能已经能够到100MB以上,数据库性能也恢复正常. ...
- 改进log4go的一些设想
log4go 的 4.0.2 版本(https://github.com/ccpaging/log4go/tree/4.0.2)发布以后, 看了看别的 go 语言日志文件设计.发现了一篇好文: log ...
- serv-u中如何映射网络驱动器
用一台机器作服务器,但硬盘空间不足,想通过影射网络驱动器来实现ftp的空间扩容! 如何映射网络硬盘或文件? 首先打开我的电脑--工具选项--映射网络驱动器: 如图示: 在文件夹输入映射路径:\\XXX ...
- (转)java中的 | ^ & 分别是什么?
|是按位或 ^是按位抑或 &是按位与 比如有两个数 int x = 5; int y = 11; System.out.println(x|y); System.out.println(x&a ...
- iOS项目冗余资源扫描脚本
iOS项目冗余资源扫描脚本 随着iOS项目的版本不断迭代,app中冗余文件会越来越多,app size也持续增加,是时候需要对app冗余资源进行检测,对app进行瘦身. 使用方法: 1. 运行环境为m ...
- year:2017 month:08 day:03
2017-08-03 JAVAse 继承 继承:通过extends关键字可实现类与类之间的继承 父类:基类/超类 子类:派生类 1.继承的特点:单继承[一个类只能有一个父类]多层次[父类还可有父类] ...
- CSS实现横列布局的方法总结
一.使用float实现横列布局的方法 如下面所示:DIV1和DIV2都可以选择向左或者向右浮动50%来实现展示在同一行 div1 div2 实现下面图片中布局的css样式如下: 分析: 1.第一行第一 ...