Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis性能惊人,这个只有1万多行源代码的程序,国内前十大网站的子产品估计用1台Redis就可以满足存储及Cache的需求。很多开发者都认为Redis不可能比Memcached快,Memcached完全基于内存,而Redis具有持久化保存特性,即使是异步的,Redis也不可能比Memcached快。但是测试结果基本是Redis占绝对优势。
性能测试结果SET操作每秒钟 110000 次,GET操作每秒钟 81000 次。目前全球最大的Redis用户是新浪微博,在新浪有200多台物理机,400多个端口正在运行着Redis, 有+4G的数据跑在Redis上来为微博用户提供服务。
这里主要是先介绍下Redis的安装与配置。
linux安装方法,我的linux是CentOS。
$ wget http://redis.googlecode.com/files/redis-2.6.5.tar.gz
$ tar xzf redis-2.6.5.tar.gz
$ cd redis-2.6.5
$ make install
我在安装时发现cc command not found的错误
解决办法:yum -y install gcc
安装成功后,启动服务
$ nohup src/redis-server &
进入客户端
$ ./src/redis-cli
Redis配置文件为redis.conf。一般不需要做太多更改。
redis主从配置
在从Redis的配置文件中配置master的ip地址和redis-server的端口。
slaveof <masterip> <port> 如 slaveof 192.168.2.6 6379
记得要先启动MASTER 再启动SLAVE,若在同一台电脑上,需保证主从的端口号不一样,若更改了端口号,启动客户端命令行为redis-cli -p 端口号
主:
从:
这里主要介绍两种数据持久化的方式。
Snapshotting
Redis有两种存储方式,默认是snapshot方式,实现方法是定时将内存的快照(snapshot)持久化到硬盘,这种方法缺点是持久化之后如果出现crash则会丢失一段数据。下面是默认的快照保存配置
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内容如超过10个key被修改,则发起快照保存
save 60 10000 #60秒内容如超过10000个key被修改,则发起快照保存
Append-only file
aof 比快照方式有更好的持久化性,是由于在使用aof持久化方式时,redis会将每一个收到的写命令都通过write函数追加到文件中(默认是 appendonly.aof)。当redis重启时会通过重新执行文件中保存的写命令来在内存中重建整个数据库的内容。当然由于os会在内核中缓存 write做的修改,所以可能不是立即写到磁盘上。这样aof方式的持久化也还是有可能会丢失部分修改。不过我们可以通过配置文件告诉redis我们想要 通过fsync函数强制os写入到磁盘的时机。有三种方式如下(默认是:每秒fsync一次)
appendonly yes //启用aof持久化方式
- appendfsync always //每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
appendfsync everysec //每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐
- appendfsync no //完全依赖os,性能最好,持久化没保证
aof 的方式也同时带来了另一个问题。持久化文件会变的越来越大。例如我们调用incr test命令100次,文件中必须保存全部的100条命令,其实有99条都是多余的。因为要恢复数据库的状态其实文件中保存一条set test 100就够了。为了压缩aof的持久化文件。redis提供了bgrewriteaof命令。收到此命令redis将使用与快照类似的方式将内存中的数据 以命令的方式保存到临时文件中,最后替换原来的文件。
总结:
1.根据业务需要选择合适的数据类型,并为不同的应用场景设置相应的紧凑存储参数。
2.当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能以及最大的内存使用量。
3.如果需要使用持久化,根据是否可以容忍重启丢失部分数据在快照方式与语句追加方式之间选择其一,不要使用虚拟内存以及diskstore方式。
4.不要让你的Redis所在机器物理内存使用超过实际内存总量的3/5。
分享到:
相关推荐
Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件。在本文中,我们将探讨如何在Ubuntu操作系统上搭建Redis虚拟机环境,并安装Redis服务器,同时也会涉及SSH工具连接虚拟机的相关问题。 首先,为了...
"Redis安装配置文档详解" Redis是一种基于内存的NoSQL数据库,具有高性能、低延迟和高可用的特点。本文档旨在指导用户如何安装和配置Redis,实现高效的数据存储和管理。 一、下载和解压Redis 下载Redis的最新版本...
- `CONF`: Redis配置文件存放路径(以端口号命名) 3. **复制并重命名脚本**: 将`redis_init_script`复制一份并重命名为`redisd_6379`(以区别其他Redis服务),然后将其复制到`/etc/init.d/`目录下。 4. **设置...
在Windows上安装Redis的过程涉及到多个步骤,包括启用必要的Windows功能、安装WSL2(Windows Subsystem for Linux 2)、设置默认WSL版本以及在Linux环境中安装Redis。以下是对这些步骤的详细说明: 1. **启用...
"Redis 配置安装详细教程" Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息代理、缓存层等。下面是 Redis 配置安装详细教程。 安装 Redis 在 Windows 操作系统中安装 Redis 非常简单。首先...
**Redis for Windows 工具安装与配置指南** Redis是一款高性能的键值存储系统,常用于数据库、缓存和消息中间件。本指南将详细介绍如何在Windows操作系统上安装和配置Redis,以及如何使用可视化管理工具。 ### 1. ...
本文将详细介绍Redis的配置和安装过程,帮助你快速上手这个强大的内存数据存储系统。 ### 安装Redis #### 1. 下载Redis源码 首先,访问Redis官方网站(https://redis.io/download)下载最新版本的源代码。你可以...
以下是一个详细的步骤指南,帮助你在Linux系统上离线安装和配置Redis 4.0.10版本。 首先,你需要准备Redis的源码包。在这个案例中,我们有`redis-4.0.10.tar`,这是一个tar归档文件,包含Redis的源代码。为了开始...
redis 6.0.6配置文件
redis6.2.6 redis.conf配置文件
本文将详细介绍Redis 5.0.8的安装与基本配置过程,确保您能够顺利地在服务器上部署并运行Redis服务。 首先,从Redis官方网站(https://redis.io/)下载最新稳定版的Redis安装包,例如Redis-5.0.8.tar.gz。将其放置在...
redis.conf Redis配置文件 下载 redis.conf 配置详解 Redis配置文件redis.conf 详解1.基本配置内存单位的表示# 1k => 1000 bytes# ...Redis 的详细介绍Redis 的下载地址
在CentOS7系统上安装Redis需要遵循一系列步骤,下面将详细介绍整个过程。 ### 一、更新系统 在安装任何新软件之前,确保系统是最新的: ```bash sudo yum update -y ``` ### 二、安装依赖 Redis的编译安装需要...
Redis是一个不错的缓存数据库,读取数据速度效率都很不错。今天大家共同研究下redis的用法。结合网上的资料和自己的摸索,先来看下安装与配置把。 咱们主要看在WINDOWS上怎样使用REDIS数据库。 主要是C#语言
Redis配置文件详解 Redis的配置文件是redis.conf,下面详细介绍配置文件中的各个配置项: 1. `daemonize no`:设置Redis是否以守护进程方式运行,默认为no,表示Redis以前台进程方式运行。 2. `pidfile /var/run/...
### Redis安装与主从配置详解 #### 一、Redis简介 Redis是一种开源的键值对存储系统,它属于NoSQL数据库的一种,与Memcached类似但更加强大。不同于Memcached只支持内存存储,Redis的数据可以持久化存储在磁盘上,...
**二、Redis配置详解** - `bind`: 指定Redis服务器监听的IP地址,默认监听本地环回地址,如果需要对外提供服务,需修改为0.0.0.0。 - `port`: 设置服务器端口,默认6379。 - `protected-mode`: 是否开启保护模式,...
Ubuntu环境下手动安装与配置Redis涉及到多个步骤,包括下载、解压、编译、安装以及配置主从复制等。下面详细介绍这些知识点。 首先,Redis安装与主从配置的目的是确保数据的安全性。在主从配置中,从服务器(Slave...
Linux系统中安装和配置Redis数据库及其主从复制是一个复杂但非常重要的过程。本文将详细介绍Linux环境下Redis的安装步骤、配置过程以及主从复制的配置方法。 ### Redis简介 Redis是一个开源的使用内存存储的高性能...