一、Redis3.0与3.2文件对比
1. clone redis
git clone https://github.com/antirez/redis.git
2. checkout分支
cd redis git checkout 3.0 git checkout 3.2
3. 比较
(1) 比较3.0和3.2文件变化数
> git rev-list 3.0..3.2 --count 1708
(2) 比较3.0和3.2文件变化统计
> git diff 3.0..3.2 --shortstat
比较3.0和3.2文件变化数
二、Redis3.0与3.2默认配置文件变化
1.配置变化
Redis3.2添加了两个配置:
- protected-mode yes
- supervised no
Redis3.2修改了个配置:有关list的优化,由配置一改为配置二,虽然还没详细了解,应该是list的底层数据结构做了一些新的变化或者优化。
配置一:
list-max-ziplist-entries 512 list-max-ziplist-value 64
配置二:
list-max-ziplist-size -2 list-compress-depth 0
配置三:
bind 127.0.0.1
bind在Redis3.2.0中默认改为127.0.0.1
2.新配置说明
- (1).protected-mode(默认是yes)
# Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited.
#
# When protected mode is on and if:
#
# 1) The server is not binding explicitly to a set of addresses using the
# "bind" directive.
# 2) No password is configured.
#
# The server only accepts connections from clients connecting from the
# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
# sockets.
#
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured, nor a specific set of interfaces
# are explicitly listed using the "bind" directive.
说明
-
用一段代码就可以说明什么是protected-mode
if (protected-mode && !requirepass && !bind) { Allow only 127.0.0.1,::1 or socket connections Deny (with the long message ever!) others }
-
其实设置成默认是为了保护对redis不了解的人,提供安全性,但是对于对于不需要bind和requirepass的使用者(例如内网),需要将protected-mode设置为no
- (2).supervised(默认是no)
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
说明
可以通过upstart和systemd管理Redis守护进程,这个参数是和具体的操作系统相关的。
- (3).bind (Redis3.2.0中bind默认是127.0.0.1)
# By default, if no "bind" configuration directive is specified, Redis listens # for connections from all the network interfaces available on the server. # It is possible to listen to just one or multiple selected interfaces using # the "bind" configuration directive, followed by one or more IP addresses. # # Examples: # # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 # # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the # internet, binding to all the interfaces is dangerous and will expose the # instance to everybody on the internet. So by default we uncomment the # following bind directive, that will force Redis to listen only into # the IPv4 lookback interface address (this means Redis will be able to # accept connections only from clients running into the same computer it # is running). # # IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES # JUST COMMENT THE FOLLOWING LINE. # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bind 127.0.0.1
说明
bind在Redis3.2.0之前默认是0.0.0.0或者说””,为了保证不太了解Redis安全性的人,在Redis3.2.0中 bind默认是127.0.0.1,也就是只有本机回环地址可以访问。如果需要配置sentinel、cluster或者需要机器机器可以访问该 Redis实例请修改为0.0.0.0或者指定的内网IP.
-
(4).list-max-ziplist-size(默认-2)
# Lists are also encoded in a special way to save a lot of space. # The number of entries allowed per internal list node can be specified # as a fixed maximum size or a maximum number of elements. # For a fixed maximum size, use -5 through -1, meaning: # -5: max size: 64 Kb <-- not recommended for normal workloads # -4: max size: 32 Kb <-- not recommended # -3: max size: 16 Kb <-- probably not recommended # -2: max size: 8 Kb <-- good # -1: max size: 4 Kb <-- good # Positive numbers mean store up to _exactly_ that number of elements # per list node. # The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size), # but if your use case is unique, adjust the settings as necessary.
-
(5).list-compress-depth(默认是0)
# Lists may also be compressed. # Compress depth is the number of quicklist ziplist nodes from *each* side of # the list to *exclude* from compression. The head and tail of the list # are always uncompressed for fast push/pop operations. Settings are: # 0: disable all list compression # 1: depth 1 means "don't start compressing until after 1 node into the list, # going from either the head or tail" # So: [head]->node->node->...->node->[tail] # [head], [tail] will always be uncompressed; inner nodes will compress. # 2: [head]->[next]->node->node->...->node->[prev]->[tail] # 2 here means: don't compress head or head->next or tail->prev or tail, # but compress all nodes between them. # 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail] # etc.
说明
Redis3.2.0引入了新的quicklist的数据结构做了list的底层存储方案。废弃了原来的两个配置参数,list-max-ziplist-entries和list-max-ziplist-value
127.0.0.1:6388> config get list-max-ziplist-size 1) "list-max-ziplist-size" 2) "-2" 127.0.0.1:6388> config get list-compress-depth 1) "list-compress-depth" 2) "0" 127.0.0.1:6388> lpush user_list u1 u2 u5 u7 u99 u10 u3 (integer) 7 127.0.0.1:6388> object encoding user_list "quicklist"
在Redis3.2.0中设置原来的参数已经不生效了,应该是无法使用了。
127.0.0.1:6388> config set list-max-ziplist-entries 512
(error) ERR Unsupported CONFIG parameter: list-max-ziplist-entries
127.0.0.1:6388> config set list-max-ziplist-value 64
(error) ERR Unsupported CONFIG parameter: list-max-ziplist-value
有关quicklist的详细使用还需要查询文档和源码来研究
三、 Redis3.0与3.2关于Cluster的一些变化(来自 3.2-release-notes )
原文:
写道
Redis Cluster changes:
All the Redis Cluster changes in 3.2 were backported to 3.0, so there is
technically nothing new for now in this release. The most important things
are:
* Cluster rebalancing.
* A pipelined MIGRATE command which is 10x faster and makes resharding
and rebalancing faster.
* Improved replicas migration.
* As a side effect of quicklists encoding (see above items), moving big
lists between nodes is now a lot faster.
Redis3.2.0的cluster完全兼容Redis3.0,也就是说可以混合部署组成集群,在Redis Cluster上Redis3.2.0没有做什么新的技术,但是也有一些比较重要的事情:
- Redis Cluster均衡(应该是指redis-trib.rb中实现类将slot进行负载均衡的功能)
- 提供了一个基于流水线的migrate命令,用于水平迁移数据,速度是原来的10倍多。
- 提升了从几点迁移的功能。
- 在quicklist这种新的数据结构的帮助下,在节点之间迁移大的big list快了很多.
注意:上述特性均在Redis3.0.7有体现,如果对于Redis3.2.0不太放心的话,可以使用Redis3.0.7。
四、 Redis3.0与3.2关于Sentinel的一些变化(来自 3.2-release-notes )
原文:
Redis Sentinel changes:
* [NEW] Sentinel connection sharing. Makes Sentinels able to scale to
monitor many masters. (Salvatore Sanfilippo)
* [NEW] New SENTINEL INFO-CACHE command. (Matt Stancliff)
* More things backported to Redis 3.0 in the past, so no longer news of 3.2.
Sentinel connection sharing
不太了解,看着像是添加新的sentinel节点后,可以共享其他sentinel节点的master,对于sentinel监控多个master比较有用,这样扩展sentinel节点时候比较方便配置,有关这个后面会继续试验。
- 提供info-cache命令
原文:http://carlosfu.iteye.com/blog/2303254?utm_source=tuicool&utm_medium=referral
相关推荐
Redis 3.0在原有的基础上进行了升级,新增了丰富的功能,其中包括支持Lua脚本、可插拔模块化、多主复制、集群等,使得Redis 3.0在性能、可扩展性、安全性等方面有着显著的提升。 2、Redis 3.0新特性: (1)支持Lua...
Redis 3.0版本是其发展历程中的一个重要里程碑,它带来了许多改进和新特性,旨在提升性能、稳定性和功能多样性。 在Redis 3.0中,主要关注以下几个方面的更新: 1. **多线程I/O**: 以往的Redis版本是单线程模型,...
以下是对Redis 3.0在Win7 32位x86系统上的一些关键知识点的详细说明: **1. Redis版本3.0** Redis 3.0是Redis的一个重要版本,发布于2015年,引入了多个新特性和改进。其中最重要的是引入了Stream数据类型,这为...
本资源“redis3.0-window免安装”是专门为Windows操作系统设计的Redis 3.0版本,旨在简化在Windows平台上的部署和使用流程。 Redis 3.0是一个重要的版本,它引入了多项新特性和改进,包括但不限于: 1. **多线程...
Redis是一款开源、高性能的键值对存储...总的来说,安装Redis 3.0.503在Windows上需要配置服务、理解配置文件,并熟悉基本的命令操作。随着你对Redis的深入理解和实践,将能够利用其强大的功能来优化你的应用程序。
这个"redis3.0-windows"压缩包文件显然包含了Redis 3.0版本的Windows兼容版本,允许用户在Windows操作系统上运行和管理Redis实例。 Redis的核心特性包括: 1. **键值存储**:Redis的基础是键值对存储,它允许存储...
- **配置文件**:`redis.windows.conf`是Redis的配置文件,你可以通过编辑此文件来更改Redis的运行参数,如端口、密码等。 3. **配置修改** - **端口设置**:默认情况下,Redis监听6379端口。如果你想更改端口,...
"redis3.0 windows64位" 版本是指Redis的3.0版本,特别适配于Windows操作系统64位环境。在Windows上部署Redis可能与Linux或Unix系统有所不同,因为Redis通常是为类Unix系统优化的。Windows版Redis提供了方便Windows...
Redis 3.0 集群环境安装手册 Redis 3.0 集群环境安装手册是指在 Linux 操作系统中安装和配置 Redis 3.0 集群的步骤指南。Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。 ...
在Windows环境下编译Redis3.0,可以让你在本地系统上测试和开发基于Redis的应用,尤其是利用其新特性——Cluster。 **Redis3.0的新特性:** 1. **Cluster支持**:Redis 3.0引入了Cluster功能,这是一个分布式解决...
在Redis 3.0.501绿色版中,我们可以通过提供的批处理文件来管理Redis服务。`redis server create.bat`这个文件的作用是创建Redis服务器,它会启动Redis服务并让其在后台运行。批处理文件内部可能包含了设置环境变量...
在Redis 3.0版本中,它已经具备了丰富的特性和功能,使其成为开发者们青睐的NoSQL数据库之一。以下是关于Redis 3.0的一些关键知识点: 1. **数据类型**:Redis支持五种基本数据类型,包括字符串(String)、哈希(Hash...
linux下redis3.0 安装与优化
本文将详细介绍如何在Windows上安装和使用Redis 3.0.504版本,以及其主要功能和使用技巧。 一、Redis 3.0.504 for Windows 安装 1. 下载:首先,你需要从官方或者可靠的第三方源下载Redis 3.0.504 for Windows的...
1. **数据结构与命令**:Redis 支持多种数据结构,如字符串(Strings)、哈希表(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted Sets)。这些数据结构提供了丰富的操作命令,例如`SET`、`GET`、`HSET`、...
redis3.0windows版,解压后可直接使用
#### 一、Redis 3.0 的安装与配置 **安装步骤:** 在安装 Redis 3.0 之前,首先确保已安装了必要的依赖包,如 cpp、binutils、glibc 等。通过 `yum` 命令安装这些依赖: ```bash yum -y install cpp binutils ...
在这个“redis3.0 demo”中,我们可以期待看到如何利用这些新特性来构建实际的应用场景。下面,我们将详细探讨Redis 3.0的关键知识点。 1. **Cluster模式**: - 文件名`redis.cluster`暗示了我们可能在研究Redis的...