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 ...
随机推荐
- webpack的Hot Module Replacement运行机制
使用webpack打包,难免会使用Hot Module Replacement功能,该功能能够实现修改.添加或删除前端页面中的模块代码,而且是在页面不刷新的前提下.它究竟是怎么运作的呢?本文主要从调试 ...
- 虚拟硬盘格式vdi、vhd、vmdk相互转换
Windows7的引导程序能够引导vhd格式的虚拟硬盘,而VirtualBox创建的虚拟硬盘文件是vdi格式的,怎么办呢? 以前要借助其他软件才能实现,但是VirtualBox早就悄悄为我们带来了一个 ...
- Android之IPC(aidl)
IPC(Inter-Process Conmunication) 进程间通讯 在同一进程中,各个组件进行通信是十分方便的,普通的函数调用就可以解决:但是,对于处于不同进程中的组件来说,要进行通信,就需 ...
- 用js写一个回车键盘事件
用js来监听键盘事件,代码如下: <script type="text/javascript" language=JavaScript charset="UTF-8 ...
- Codeforces_776E: The Holmes Children (数论 欧拉函数)
题目链接 先看题目中给的函数f(n)和g(n) 对于f(n),若自然数对(x,y)满足 x+y=n,且gcd(x,y)=1,则这样的数对对数为f(n) 证明f(n)=phi(n) 设有命题 对任意自然 ...
- [Android]Android内存泄漏你所要知道的一切(翻译)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/7235616.html Android内存泄漏你所要知道的一切 ...
- (转)目前比较全的CSS重设(reset)方法总结
在当今网页设计/开发实践中,使用CSS来为语义化的(X)HTML标记添加样式风格是重要的关键.在设计师们的梦想中都存在着这样的一个完美世界:所有的浏览器都能够理解和适用多有CSS规则,并且呈现相同的视 ...
- HDU - 4995 - Revenge of kNN
题目链接 : https://vjudge.net/problem/HDU-4995 题目大意 : 读入n个点的坐标与该点所拥有的值val,进行m次查询,对于每一次查询,读入该点的坐标,计算离该 ...
- android studio生成junitLibs
apply plugin: 'com.android.application'android { compileSdkVersion 24 buildToolsVersion "25.0.0 ...
- 史上最易懂——ReactNative分组列表SectionList使用详情及示例详解
React Native系列 <逻辑性最强的React Native环境搭建与调试> <ReactNative开发工具有这一篇足矣> <解决React Native un ...