Redis 3.2.0学习
redis3.0.2 分布式集群安装详细步骤
redis3.0.2 分布式集群安装详细步骤--(centos5.8 X64系统)版本历史一: redis cluster介绍篇1:redis cluster的现状目前redis支持的cluster特性(已亲测):1):节点自动发现2):slave->master 选举,集群容错3):Hot resharding:在线分片4):进群管理:cluster xxx5):基于配置(nodes-port.conf)的集群管理6):ASK 转向/MOVED 转向机制.2:redis cluster 架构1)redis-cluster架构图架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value2) redis-cluster选举:容错(1)领着选举过程是集群中所有master参与,如果半数以上master节点与master 节点通信超过(cluster-node-timeout),认为当前master节点挂掉.(2):什么时候整个集群不可用(cluster_state:fail),当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.二.Redis集群安装篇(centos5.8 X64系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:70051:下载redis。
redis基本用法
redis基本用法Redis是一种高性能的键值存储数据库,它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合。
以下是Redis的基本用法:1. 安装Redis在Linux系统上,可以使用命令行安装Redis:sudo apt-get updatesudo apt-get install redis-server2. 启动Redis启动Redis服务器可以使用以下命令:redis-server3. 连接到Redis可以使用以下命令连接到正在运行的Redis服务器:redis-cli4. 存储和获取数据存储数据可以使用SET命令:SET key value获取数据可以使用GET命令:GET key5. 删除数据可以使用DEL命令删除一个或多个键值对:DEL key1 key2 ...6. 数据类型Redis支持五种主要的数据类型:字符串、哈希表、列表、集合和有序集合。
7. 字符串操作字符串是最简单的数据类型。
可以使用SET和GET命令存储和获取字符串。
其他常用的字符串操作包括APPEND(追加字符串)、INCR (增加数字)、DECR(减少数字)等。
8. 哈希表操作哈希表是一种键值对集合。
可以使用HSET和HGET命令存储和获取哈希表中的元素。
其他常用的哈希表操作包括HDEL(删除元素)、HLEN(获取元素数量)等。
9. 列表操作列表是一系列有序的元素。
可以使用LPUSH和RPUSH命令向列表中添加元素,使用LPOP和RPOP命令从列表中取出元素。
其他常用的列表操作包括LLEN(获取列表长度)、LRANGE(获取指定范围内的元素)等。
10. 集合操作集合是一组无序的唯一元素。
可以使用SADD和SMEMBERS命令向集合中添加元素,使用SREM命令删除元素。
其他常用的集合操作包括SCARD(获取集合大小)、SINTER(获取多个集合的交集)等。
11. 有序集合操作有序集合是一组有序的唯一元素。
redis使用流程
redis使用流程Redis使用流程概述:Redis是一款开源的内存数据库,具有高性能、持久化、可扩展等特点。
本文将介绍Redis的使用流程,帮助读者快速上手Redis。
1. 安装Redis:需要在本地或服务器上安装Redis。
可以从官方网站下载安装包,并按照指示进行安装。
安装完成后,可以通过命令行输入redis-cli 命令来验证Redis是否安装成功。
2. 连接Redis:Redis默认监听端口为6379,可以使用redis-cli命令连接到Redis 服务器。
在命令行中输入redis-cli后,会进入Redis的交互式命令行界面。
在该界面中,可以输入各种Redis命令进行操作。
3. 设置键值对:Redis是一个键值对数据库,可以使用SET命令来设置键值对。
例如,使用命令SET key value来设置一个键值对,其中key是键,value是值。
可以通过GET命令来获取键对应的值,例如GET key。
4. 存储数据结构:Redis支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合。
可以使用对应的命令来操作这些数据结构。
4.1 字符串:可以使用SET和GET命令来设置和获取字符串类型的值。
4.2 哈希表:可以使用HSET和HGET命令来设置和获取哈希表中的字段和值。
4.3 列表:可以使用LPUSH和RPUSH命令来将值添加到列表的左侧和右侧,使用LPOP和RPOP命令来从列表的左侧和右侧移除值。
4.4 集合:可以使用SADD和SMEMBERS命令来添加和获取集合中的元素,使用SREM命令来移除集合中的元素。
4.5 有序集合:可以使用ZADD和ZRANGE命令来添加和获取有序集合中的元素,使用ZREM命令来移除有序集合中的元素。
5. 持久化:Redis支持持久化数据的功能,可以将数据保存到硬盘上,以便重启后恢复数据。
可以通过配置文件设置持久化方式,包括RDB快照和AOF日志两种方式。
5.1 RDB快照:RDB快照是将当前数据保存到一个二进制文件中。
redis操作手册
Redis操作手册1. 介绍Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。
它以高性能和简单的设计而闻名,是许多互联网应用的首选解决方案。
本文将详细介绍Redis的操作手册,包括基本命令、数据类型、持久化、集群等方面的内容。
2. 安装和配置2.1 安装Redis要安装Redis,可以通过编译源代码或使用包管理器安装。
下面是在Ubuntu上使用包管理器安装Redis的示例:$ sudo apt-get update$ sudo apt-get install redis-server2.2 配置RedisRedis的配置文件位于redis.conf,可以通过编辑该文件来配置Redis的各种参数。
常见的配置项包括端口号、密码、持久化选项等。
在配置文件中,以#开头的行代表注释,可以用于说明配置项的作用。
配置完成后,需要重启Redis才能使配置生效。
3. 基本命令Redis提供了各种基本的命令,用于管理和操作数据。
以下是一些常用的Redis命令:3.1 字符串操作•SET key value:设置指定键的值。
•GET key:获取指定键的值。
•DEL key:删除指定键及其对应的值。
3.2 列表操作•LPUSH key value:将值插入到列表的头部。
•RPUSH key value:将值插入到列表的尾部。
•LPOP key:移除并返回列表的头部元素。
•RPOP key:移除并返回列表的尾部元素。
3.3 哈希操作•HSET key field value:设置指定键的哈希字段的值。
•HGET key field:获取指定键的哈希字段的值。
•HDEL key field:删除指定键的哈希字段及其值。
3.4 集合操作•SADD key member:将指定成员添加到集合中。
•SMEMBERS key:返回指定集合的所有成员。
•SREM key member:从指定集合中移除指定成员。
redis的常用方法
redis的常用方法Redis是一个开源、内存存储的数据结构服务器,可以支持多种数据结构,包括字符串、哈希、列表、集合、有序集合等。
以下是Redis常用的方法:1.字符串操作:- SET key value:设置指定key的值为value。
- GET key:获取指定key的值。
- DEL key:删除指定key及其对应的值。
- INCR key:将指定key的值增加1- DECR key:将指定key的值减少1- APPEND key value:将value追加到指定key的值的末尾。
2.哈希操作:- HSET key field value:在指定key的哈希中设置字段field的值为value。
- HGET key field:获取指定key的哈希中字段field的值。
- HGETALL key:获取指定key的哈希中所有字段及其对应的值。
- HDEL key field:删除指定key的哈希中字段field及其对应的值。
- HINCRBY key field increment:将指定key的哈希中字段field的值增加increment。
3.列表操作:- LPUSH key value1 value2:将value1、value2等值从左侧插入指定key的列表中。
- RPUSH key value1 value2:将value1、value2等值从右侧插入指定key的列表中。
- LPOP key:从指定key的列表左侧弹出一个值。
- RPOP key:从指定key的列表右侧弹出一个值。
- LLEN key:获取指定key的列表长度。
4.集合操作:- SADD key member1 member2:将member1、member2等值添加到指定key的集合中。
- SMEMBERS key:获取指定key的集合中所有成员。
- SREM key member:从指定key的集合中移除member成员。
redis 数据库基本操作
redis 数据库基本操作Redis 数据库基本操作Redis(Remote Dictionary Server)是一个基于内存的开源数据库,常用作缓存、消息队列和持久化存储。
它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,并提供了丰富的命令集来操作这些数据结构。
本篇文章将一步一步回答关于Redis 数据库的基本操作。
第一步:Redis 数据库的安装和配置首先,我们需要下载并安装Redis 数据库。
官方网站提供了各种版本的Redis 下载,您可以根据系统的要求选择合适的版本进行下载。
安装完成后,我们还需要对Redis 进行一些基本的配置。
Redis 的配置文件位于Redis 安装目录下的redis.conf。
您可以使用文本编辑器打开此文件,根据需要修改其中的参数。
例如,您可以设置Redis 的监听地址和端口、密码验证、持久化方式等。
保存并关闭配置文件后,我们可以打开终端或命令提示符窗口,运行以下命令启动Redis 服务器:redis-server /path/to/redis.conf第二步:连接Redis 数据库在Redis 服务器启动后,我们可以使用Redis 自带的命令行工具redis-cli 来连接到数据库。
打开新的终端或命令提示符窗口,并运行以下命令:redis-cli如果Redis 服务器的地址和端口与默认值不同,您可以使用以下命令连接到指定的Redis 服务器:redis-cli -h host -p port在成功连接到Redis 数据库后,您将看到一个命令行提示符,表示您已经进入了Redis 的交互式终端。
第三步:操作Redis 数据库在进入Redis 的交互式终端后,我们可以使用各种命令对数据进行操作。
下面是一些常用的Redis 命令示例:1. 设置键值对> SET key value通过SET 命令,我们可以将指定的值赋给指定的键。
例如,我们可以使用以下命令设置一个字符串值:> SET name "John Doe"2. 获取键值对> GET key通过GET 命令,我们可以获取指定键的值。
redis简单操作指令
redis简单操作指令
Redis是一种开源的内存数据库,它提供了丰富的指令集来操作数据。
以下是一些常用的Redis指令:
1. 设置键值对:
SET key value 设置指定键的值。
GET key 获取指定键的值。
2. 列表操作:
LPUSH key value1 [value2] 将一个或多个值插入到列表头部。
RPUSH key value1 [value2] 将一个或多个值插入到列表尾部。
LRANGE key start stop 获取列表指定范围内的值。
3. 集合操作:
SADD key member1 [member2] 向集合中添加一个或多个成员。
SMEMBERS key 获取集合中的所有成员。
SINTER key1 key2 获取多个集合的交集。
4. 哈希操作:
HSET key field value 设置哈希字段的字符串值。
HGET key field 获取哈希字段的值。
HGETALL key 获取哈希表中的所有字段和值。
5. 有序集合操作:
ZADD key score1 member1 [score2 member2] 向有序集合中添加一个或多个成员,或更新已存在成员的分数。
ZRANGE key start stop [WITHSCORES] 根据排名范围获取有序集合的成员。
以上是一些常用的Redis指令,它们涵盖了对键值、列表、集合、哈希和有序集合的基本操作。
当然,Redis还有很多其他指令和功能,这些指令只是其中的一部分。
希望这些信息能够帮助你更好地理解Redis的简单操作指令。
超强、超详细Redis入门教程【转】
超强、超详细Redis⼊门教程【转】这篇⽂章主要介绍了超强、超详细Redis⼊门教程,本⽂详细介绍了Redis数据库各个⽅⾯的知识,需要的朋友可以参考下【本教程⽬录】1.redis是什么2.redis的作者何许⼈也3.谁在使⽤redis4.学会安装redis5.学会启动redis6.使⽤redis客户端7.redis数据结构 – 简介8.redis数据结构 – strings9.redis数据结构 – lists10.redis数据结构 – 集合11.redis数据结构 – 有序集合12.redis数据结构 – 哈希13.聊聊redis持久化 – 两种⽅式14.聊聊redis持久化 – RDB15.聊聊redis持久化 – AOF16.聊聊redis持久化 – AOF重写17.聊聊redis持久化 – 如何选择RDB和AOF18.聊聊主从 – ⽤法19.聊聊主从 – 同步原理20.聊聊redis的事务处理21.教你看懂redis配置 – 简介22.教你看懂redis配置 -通⽤23.教你看懂redis配置 – 快照24.教你看懂redis配置 – 复制25.教你看懂redis配置 – 安全26.教你看懂redis配置 -限制27.教你看懂redis配置 – 追加模式28.教你看懂redis配置 – LUA脚本29.教你看懂redis配置 – 慢⽇志30.教你看懂redis配置 – 事件通知31.教你看懂redis配置 – ⾼级配置【redis是什么】redis是⼀个开源的、使⽤C语⾔编写的、⽀持⽹络交互的、可基于内存也可持久化的Key-Value数据库。
redis的官⽹地址,⾮常好记,是redis.io。
(特意查了⼀下,域名后缀io属于国家域名,是british Indian Ocean territory,即英属印度洋领地)⽬前,Vmware在资助着redis项⽬的开发和维护。
【redis的作者何许⼈也】开门见⼭,先看照⽚:是不是出乎了你的意料,嗯,⾼⼿总会有些地⽅与众不同的。
Redis常用方法
Redis常用方法1. String类型方法:- set(key, value):设置指定key的值为value。
- get(key):获取指定key的值。
- mset(keys_values):同时设置多个key-value对。
- mget(keys):同时获取多个key的值。
- incr(key):将指定key的值增加1- decr(key):将指定key的值减少1- strlen(key):获取指定key的值的长度。
- append(key, value):向指定key的值的末尾追加value。
- getrange(key, start, end):获取指定key的值的指定范围内的子串。
2. Hash类型方法:- hset(key, field, value):设置指定key的hash中的指定field 的值为value。
- hget(key, field):获取指定key的hash中的指定field的值。
- hmset(key, field_value_pairs):同时设置指定key的hash中的多个field-value对。
- hmget(key, fields):同时获取指定key的hash中的多个field 的值。
- hincrby(key, field, increment):将指定key的hash中的指定field的值增加increment。
- hlen(key):获取指定key的hash的长度,即field的数量。
- hdel(key, field):删除指定key的hash中的指定field。
- hkeys(key):获取指定key的hash中的所有field。
- hvals(key):获取指定key的hash中的所有value。
- hgetall(key):获取指定key的hash中的所有field-value对。
3. List类型方法:- lpush(key, value):将value插入到指定key的列表的头部。
redis基础知识
redis基础知识
Redis是一种高性能的开源键值对存储系统。
它被广泛应用于缓存、队列、消息发布/订阅和计数器等领域。
本文将介绍Redis的基
础知识,包括数据结构、命令、持久化、高可用性等方面。
1. 数据结构
Redis支持多种数据结构,包括字符串、哈希、列表、集合和有序集合等。
每种数据结构都有对应的命令,可以对其进行读取、写入和操作等操作。
2. 命令
Redis的命令非常简单,易于学习和使用。
常用的命令包括set、get、hset、hget、lpush、rpop等。
此外,Redis还支持事务、管道和Lua脚本等高级功能。
3. 持久化
Redis提供了两种持久化方式,分别是RDB和AOF。
RDB是将内
存中的数据定期保存到磁盘上,而AOF则是将每个写入操作记录到日志文件中。
两种方式各有优缺点,可以根据实际需求选择合适的方式。
4. 高可用性
Redis可以通过主从复制和哨兵机制来实现高可用性。
主从复制可以将主节点的数据同步到从节点上,从而实现数据备份和读写分离。
哨兵机制则可以实现自动故障转移和自动选举新的主节点等功能,从而提高系统的可用性。
总之,Redis是一种强大而简单的键值存储系统,可以满足各种
业务需求。
掌握Redis的基本知识,对于开发高性能、可靠的应用程序非常有帮助。
redis基本操作
redis基本操作Redis是一种开源的高性能键值存储数据库,具有快速、稳定、可扩展的特点,在现在的应用程序中受到越来越多的关注。
本文介绍Redis的基本操作,此文将从安装Redis、Redis数据类型、Redis命令三个方面分别介绍Redis的基本操作。
一、安装Redis1、从GitHub上下载Redis最新版本。
2、解压缩Redis软件包。
3、编译安装Redis,在Redis目录中输入make命令,完成Redis 编译安装。
4、安装Redis客户端,用于远程管理服务器上的Redis数据库。
5、启动Redis,进入Redis目录,输入 ./redis-server令,启动Redis服务。
6、在客户端连接服务器上的Redis,输入 ./redis-cli令,可以连接服务器上的Redis数据库。
二、Redis数据类型1、字符串(String): Redis中的字符串是一种二进制安全字符串,可以储存任何格式数据,比如字符串、图片、视频等,在Redis 里字符串数据可以被操作的指令有SET、GET、SETEX、MSET等。
2、哈希(Hash): Redis的哈希是键值对的集合,可以存储大量的键值对数据,比如用户信息,在Redis里哈希数据可以被操作的指令有HGET、HSET、HMGET、HMSET等。
3、列表(List): Redis的列表是一种按照插入顺序排序的字符串列表,可以用于存储消息队列、任务队列等,在Redis里列表数据可以被操作的指令有LPUSH、RPUSH、LLEN、LRANGE等。
4、集合(Set): Redis的集合是一种不允许重复成员的字符串集合,可以用于去重和分组,在Redis里集合数据可以被操作的指令有SADD、SMEMBERS、SREM等。
5、有序集合(Sorted Set): Redis的有序集合是一种不允许重复成员的字符串集合,同时还给每个成员关联一个分数,支持按分数从小到大,从大到小的顺序排序,可以用于排行榜等,在Redis里有序集合数据可以被操作的指令有ZADD、ZRANGE、ZRANK等。
redis数据库基础操作
redis数据库基础操作Redis是一个高性能的key-value存储系统,被广泛应用于分布式缓存、消息中间件、排行榜等领域。
以下是Redis数据库的基础操作:1. 连接到Redis数据库。
redis-cli -h host -p port -a password。
其中,host是Redis数据库的主机名或IP地址,port是端口号,默认为6379,password是密码,默认为空。
2.设置键值对。
设置键值对,可以使用SET命令:SET key value。
其中,key是键名,value是键值。
3.获取键值对。
获取键值对,可以使用GET命令:GET key。
其中,key是键名,返回的是键对应的值。
4.删除键值对。
删除键值对,可以使用DEL命令:DEL key。
其中,key是键名。
5.自增/自减操作。
自增/自减操作,可以使用INCR/DECR命令:INCR key。
DECR key。
其中,key是键名。
6.判断键是否存在。
判断键是否存在,可以使用EXISTS命令:EXISTS key。
其中,key是键名,返回1表示存在,返回0表示不存在。
7.设置过期时间。
设置过期时间,可以使用EXPIRE命令:EXPIRE key seconds。
其中,key是键名,seconds是过期时间,单位为秒。
8.判断键的剩余时间。
判断键的剩余时间,可以使用TTL命令:TTL key。
其中,key是键名,返回-1表示没有设置过期时间,返回-2表示键不存在。
9.批量操作。
批量操作,可以使用MSET、MGET、DEL等命令。
MSET key1 value1 key2 value2 ...MGET key1 key2 ...DEL key1 key2 ...其中,MSET可以同时设置多个键值对,MGET可以同时获取多个键对应的值,DEL可以同时删除多个键值对。
10.清空数据库。
清空数据库,可以使用FLUSHALL命令:FLUSHALL。
redis基本操作
redis基本操作Redis是一种开源的内存型数据库,它的性能优异,特性非常强大,能够支持大量的数据结构,如字符串、哈希表、列表、集合和有序集合等。
它也被称为NoSQL(非关系型)数据库,因为它不需要严格的模式化结构。
Redis最常用于缓存,因为它可以支持大量的键值对,以及速度令人惊叹的存取速度。
Redis安装非常简单,用户可以选择在其官网下载最新版本,也可以从大多数Linux发行版的软件仓库安装Redis,比如Arch Linux 中的AUR和Ubuntu中的PPA。
安装完毕后,用户就可以进行Redis的基本操作了。
首先,需要打开一个Redis服务器的连接,可以使用redis-cli 工具,或利用任何一种Redis库管理器,比如phpredisadmin,redis desktop manager等。
当连接上Redis服务器之后,就可以开始使用基本操作了。
SET命令可以让用户在Redis中设置一个键值对。
它由以下语法组成:SET key value。
这里,key是设置的键,value是对应的值。
例如:SET user johnsmith,则设置user为johnsmith。
GET命令可以用来获取Redis中的数据。
它的使用方法也很简单,只要输入GET key,就可以获取到key对应的值。
比如:GET user,输出johnsmith。
EXPIRE命令可以设置一个key的过期时间。
这样可以让用户控制key的有效期,以免它过期又无法使用。
其语法为EXPIRE keyseconds,其中seconds为设置的过期时间,即以秒为单位,设置key 要在多少秒之内变成过期状态。
EXISTS命令可以检查一个key是否存在,返回值是0或1,即key不存在或key存在。
其语法为EXISTS key,比如:EXISTS user,如果user已存在,则返回1,否则返回0。
RENAME命令可以对已存在的key进行重命名。
Redis3.2集群配置
Redis3.2集群配置修改记录目录1准备 (1)2配置 (1)3安装ruby及ruby的redis模块 (1)4内核调优 (1)5建立目录 (2)6撰写redis配置文件(cp配置文件注意修改端口) (2)7启动服务 (2)8初始化集群 (2)9查看集群状态 (4)1 准备安装包redis-3.2.0.tar.gz在三台机子上安装好redis3.2可参考文档《CentOS7下安装redis3.docx》10.1.1.241:6300 10.1.1.241:6301 主从10.1.1.244:6300 10.1.1.244:6301 主从10.1.1.243:6300 10.1.1.243:6301 主从2 配置#按如下方式,配置信息[root@SLAVE3 bin]# cd /data/program/redis-3.2.0[root@SLAVE3 redis-3.2.0]# cp src/redis-trib.rb /usr/local/bin3 安装ruby及ruby的redis模块[root@MASTER1 ~]# yum -y install ruby rubygems[root@MASTER1 redis-3.2.0]# gem install redis --version 3.2.0Fetching: redis-3.2.0.gem (100%)Successfully installed redis-3.2.0Parsing documentation for redis-3.2.0Installing ri documentation for redis-3.2.01 gem installed4 内核调优[root@MASTER1 redis-3.2.0]# echo 511 > /proc/sys/net/core/somaxconn[root@MASTER1 ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled [root@MASTER1 ~]# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf [root@MASTER1 ~]# sysctl -pvm.overcommit_memory = 15 建立目录[root@SLAVE2 redis-3.2.0]# mkdir /data/redis/{6300,6301} -p6 撰写redis配置文件(cp配置文件注意修改端口)[root@MASTER1 ~]# vim /etc/redis_6300.conf#此处copy时注意更换IP和端口daemonize yesbind 10.1.1.243port 6300logfile "/data/redis/6300/redis_6300.log"cluster-enabled yescluster-config-file /data/redis/6300/nodes-6300.confcluster-node-timeout 5000appendonly yesprotected-mode no7 启动服务[root@MASTER1 ~]# redis-server /etc/redis_6300.conf[root@MASTER1 ~]# redis-server /etc/redis_6301.conf[root@MASTER1 ~]# echo "redis-server /etc/redis_6300.conf" >> /etc/rc.local[root@MASTER1 ~]# echo "redis-server /etc/redis_6301.conf" >> /etc/rc.local8 初始化集群[root@MASTER1 bin]# redis-trib.rb create --replicas 1 10.1.1.241:6300 10.1.1.244:6300 10.1.1.243:6300 10.1.1.241:6301 10.1.1.244:6301 10.1.1.243:6301>>> Creating cluster>>> Performing hash slots allocation on 6 nodes...Using 3 masters:10.1.1.241:630010.1.1.244:630010.1.1.243:6300Adding replica 10.1.1.244:6301 to 10.1.1.241:6300Adding replica 10.1.1.241:6301 to 10.1.1.244:6300Adding replica 10.1.1.243:6301 to 10.1.1.243:6300M: b23517fab99828456bf3ff6b38808a960b8d7a3a 10.1.1.241:6300 slots:0-5460 (5461 slots) masterM: d1461cbdad9f7d1ca6986282cd6553a92008b514 10.1.1.244:6300 slots:5461-10922 (5462 slots) masterM: 1e348a32d95d56ba54013a331321fb8abd39fdb3 10.1.1.243:6300 slots:10923-16383 (5461 slots) masterS: 335ad1fe18643943fec279016d7d321488835d10 10.1.1.241:6301 replicates d1461cbdad9f7d1ca6986282cd6553a92008b514S: 37398d3b3cb452303206130aec6ec44378b1032c 10.1.1.244:6301 replicates b23517fab99828456bf3ff6b38808a960b8d7a3aS: 5054dbf2a497f5189a0f526e4d829696b69ec5c7 10.1.1.243:6301 replicates 1e348a32d95d56ba54013a331321fb8abd39fdb3Can I set the above configuration? (type 'yes' to accept): yes #输入yes >>> Nodes configuration updated>>> Assign a different config epoch to each node>>> Sending CLUSTER MEET messages to join the clusterWaiting for the cluster to join...>>> Performing Cluster Check (using node 10.1.1.241:6300)M: b23517fab99828456bf3ff6b38808a960b8d7a3a 10.1.1.241:6300 slots:0-5460 (5461 slots) masterM: d1461cbdad9f7d1ca6986282cd6553a92008b514 10.1.1.244:6300 slots:5461-10922 (5462 slots) masterM: 1e348a32d95d56ba54013a331321fb8abd39fdb3 10.1.1.243:6300 slots:10923-16383 (5461 slots) masterM: 335ad1fe18643943fec279016d7d321488835d10 10.1.1.241:6301 slots: (0 slots) masterreplicates d1461cbdad9f7d1ca6986282cd6553a92008b514M: 37398d3b3cb452303206130aec6ec44378b1032c 10.1.1.244:6301 slots: (0 slots) masterreplicates b23517fab99828456bf3ff6b38808a960b8d7a3aM: 5054dbf2a497f5189a0f526e4d829696b69ec5c7 10.1.1.243:6301 slots: (0 slots) masterreplicates 1e348a32d95d56ba54013a331321fb8abd39fdb3[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.9 查看集群状态[root@MASTER1 bin]# redis-trib.rb check 10.1.1.241:6300>>> Performing Cluster Check (using node 10.1.1.241:6300)M: b23517fab99828456bf3ff6b38808a960b8d7a3a 10.1.1.241:6300 slots:0-5460 (5461 slots) master1 additional replica(s)M: d1461cbdad9f7d1ca6986282cd6553a92008b514 10.1.1.244:6300 slots:5461-10922 (5462 slots) master1 additional replica(s)S: 37398d3b3cb452303206130aec6ec44378b1032c 10.1.1.244:6301 slots: (0 slots) slavereplicates b23517fab99828456bf3ff6b38808a960b8d7a3aM: 1e348a32d95d56ba54013a331321fb8abd39fdb3 10.1.1.243:6300 slots:10923-16383 (5461 slots) master1 additional replica(s)S: 335ad1fe18643943fec279016d7d321488835d10 10.1.1.241:6301 slots: (0 slots) slavereplicates d1461cbdad9f7d1ca6986282cd6553a92008b514S: 5054dbf2a497f5189a0f526e4d829696b69ec5c7 10.1.1.243:6301 slots: (0 slots) slavereplicates 1e348a32d95d56ba54013a331321fb8abd39fdb3[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.。
redis-x64-3.2.100下载安装
redis-x64-3.2.100下载安装
1.下载⽹址:(这是跑到国外去下,⽹络有时慢)如图:
2.选择合适你的版本-----我下载的是 Redis-x64-
3.2.100.zip 下载好了直接解压出来就⾏了,根本不需要安装(考虑到⽹络下载慢的问题)可以去我的百度⽹盘下载:提取码:j2js
3.解压完如下图这样就好了
4.redis启动
打开⼀个命令窗⼝,进⼊到你解压的⽬录,输⼊命令:redis-server redis.windows.conf
5.把redis加⼊到windos的服务中
再打开⼀个新的命令窗⼝,输⼊命令:redis-server --service-install redis.windows.conf
启动服务(也可以去你解压的⽬录找到redis-server⽂件双击运⾏)
输⼊命令:redis-server --service-start
停⽌服务
输⼊命令:redis-server --service-stop
redis卸载
输⼊命令:redis-server --service-uninstall
到这⾥redis的下载安装就结束了
接下来就是redis的可视化管理⼯具 redis-desktop-manager
⽹盘链接:提取码:zyc2
安装的话,憨憨式的下⼀步下⼀步就⾏了。
关于Redis访问安全性的问题
关于Redis访问安全性的问题升级版本3.0.2 版本升级到 redis-3.2.0 版本远程⽆法访问,⽐较配置⽂件有些变化,⽐如默认只能本地的机器才能访问3.0.2 版本# By default Redis listens for connections from all the network interfaces# available on the server. It is possible to listen to just one or multiple# 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.1redis-3.2.0版本# 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# 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 yes安全##Redis 配置######编译包yum updateyum -y install gcc gcc-c++ autoconf automake make######下载编译wgettar xzf redis-3.2.0.tar.gzcd redis-3.2.0make######编译测试yum install tclmake test######注释bind# bind 127.0.0.1######守护进程启动daemonize yes#保护模式[⽆密码模式设置为no]protected-mode no#设置密码requirepass test######数据⽂件路径dir /opt/data/######⽇志⽂件路径logfile "/opt/data/redis.log"######缓存数据名称dbfilename dump.rdb#查看防⽕墙关闭状态service iptables status######关闭命令service iptables stop######永久关闭防⽕墙chkconfig iptables off######主从配置⼀个从服务器⾮常简单,只要在配置⽂件中增加以下的这⼀⾏就可以了:slaveof 192.168.210.31 6379SLAVEOF 192.168.210.31 6379######启动src/redis-server /opt/redis-3.2.0/redis.conf######测试$ src/redis-cliredis> set foo barOKredis> get foo"bar"######查看进程ps -ef | grep redis######杀死进程kill -9 25946监控监控是使⽤的Opserver,启⽤了密码后,官⽅也没有相关配置的⽂档,调试了代码,强制设置了默认的密码。
redis知识点总结
redis知识点总结Redis知识点总结Redis是一种高性能的键值存储系统,它支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合。
Redis的特点是速度快、可靠性高、支持多种数据结构和丰富的功能。
本文将对Redis的一些重要知识点进行总结。
1. Redis的数据结构Redis支持多种数据结构,包括字符串、哈希表、列表、集合和有序集合。
其中,字符串是最基本的数据结构,可以存储任何类型的数据,包括数字、文本、二进制数据等。
哈希表是一种键值对的集合,可以存储多个字段和对应的值。
列表是一种有序的字符串集合,支持在列表的两端插入和删除元素。
集合是一种无序的字符串集合,支持集合的交、并、差等操作。
有序集合是一种有序的字符串集合,每个元素都有一个分数,可以根据分数进行排序。
2. Redis的持久化Redis支持两种持久化方式:RDB和AOF。
RDB是一种快照方式,可以将Redis的数据保存到磁盘上,以便在Redis重启时恢复数据。
AOF是一种追加方式,可以将Redis的操作记录保存到磁盘上,以便在Redis重启时重新执行操作记录来恢复数据。
RDB的优点是快速、简单,缺点是可能会丢失一部分数据;AOF的优点是可靠、安全,缺点是性能较低。
3. Redis的主从复制Redis支持主从复制,可以将一个Redis实例的数据复制到多个Redis实例上。
主从复制的作用是提高Redis的可用性和性能。
主Redis实例负责写入数据,从Redis实例负责读取数据。
当主Redis 实例出现故障时,从Redis实例可以接管主Redis实例的工作,保证Redis的可用性。
主从复制的配置比较简单,只需要在从Redis 实例上配置主Redis实例的IP地址和端口号即可。
4. Redis的事务Redis支持事务,可以将多个命令打包成一个事务,然后一次性执行。
事务的作用是保证多个命令的原子性,即要么全部执行成功,要么全部执行失败。
Redis的事务使用MULTI、EXEC、DISCARD和WATCH等命令实现。
redis 使用方法
redis 使用方法
Redis是一个高性能的键值存储系统,具有快速、稳定、可靠等特点。
它支持多种数据类型,如字符串、哈希、列表、集合和有序集合等。
Redis 除了基本的键值读写操作外,还提供了丰富的功能,如发布/订阅、事务处理、Lua 脚本等。
Redis 的安装和配置非常简单,可以通过官网下载二进制包或者源码进行安装。
安装完成后,可以通过启动 redis-server 命令来启动 Redis 服务。
Redis 的命令非常简单易学,可以通过 redis-cli 命令来进入Redis 的命令行界面,然后输入相应的命令即可完成对 Redis 的操作。
例如,使用 SET 命令可以将一个键值对存储到 Redis 中,使用GET 命令可以获取对应的值。
除了基本的键值读写操作外,Redis 还提供了许多功能强大的命令和功能,如事务处理、批量操作、管道操作、Lua 脚本等。
这些功能可以大大提高 Redis 的性能和操作效率。
Redis 还支持多种编程语言的客户端库,如 Python、Java、PHP 等,可以方便地集成到各种应用中。
总之,Redis 是一个高性能、功能强大的键值存储系统,可以广泛应用于各种场景中,如缓存、队列、计数器、排行榜等。
掌握 Redis 的使用方法,可以大大提高系统的性能和稳定性。
- 1 -。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Redis 3.2.0学习1.Redis介绍Redis是一个内存中的key-value结构存储系统,NoSQL数据库服务器。
存储数据类型丰富,有字符串(strings), 散列(hashes), 列表(lists),集合(sets), 有序集合(sorted sets)。
Redis有单机、主从、集群的应用部署,目前(2016-6-1)主流应用版本是Redis 2.8,在各公司生产环境应用,最新版本Redis 3.2.0,Redis3.0后的最新版本自带集群功能(Redis-Cluster)。
2.Redis安装安装环境:CentOS release 6.5单独使用命令安装Redis-Cluster比较麻烦,redis的作者为了简化Redis-Cluster的搭建,使用ruby作为redis的客户端语言,实现了一个工具包redis-trib.rb。
所以,在安装Redis 前,需要检查CentOS是否安装了gcc和ruby(ruby如果不使用Redis-Cluster功能,可以不需要)。
1.安装必要的包:检查是否安装gcc和ruby,没有安装相应包。
rpm -qa | grepgccrpm -qa | grep rubyGcc安装:yum install –y gcc*Ruby安装:yum install –y ruby2.下载Redis:wget http://download.redis.io/releases/redis-3.2.0.tar.gz3.安装Redis:移动Redis安装包到/usr/src目录下,解压文件,进入redis-3.2.0中,使用make 命令编译源文件,使用root权限安装Redis。
mv redis-3.2.1.tar.gz /usr/src/tar –zxvfredis-3.2.0.tar.gzcd redis-3.2.0makemake testsudo make install在/usr/src/redis-3.2.0目录下,使用src/./redis-server启动Redis,检查Redis是否安装成功。
src/./redis-server3.Redis单机管理配置1.管理1.进入到/usr/src/redis-3.2.0/src目录查看一下目录文件。
2.把/usr/src/redis-3.2.0/src目录下的绿色的文件复制到/usr/local/redis/bin/:sudocp mkreleasehdr.sh redis-benchmark redis-check-aofredis-trib.rbredis-check-rdbredis-cli redis-sentinel redis-server /usr/local/redis/bin/3.把/usr/src/redis-3.2.0中的redis.conf复制到/usr/local/redis/bin/:cpredis.conf/usr/local/redis/bin/4.进入/usr/local/redis/bin/,查看目录下文件:cd /usr/local/redis/bin/2.Redis配置进入Redis配置文件,修改相应参数:vi redis.confdaemonize yesRedis默认情况下不是守护进程运行的,把参数daemonize为no改成yes,让它在后台运行。
bind 192.168.99.128 127.0.0.1绑定主机IP,默认是127.0.0.1,但是这时Redis只能在本机访问,配置本机IP 后,可以远程访问。
logfile /logs/redis_local.logRedis日志记录文件,默认是标准输出stdout,需要自定义配置文件存储位置。
3.Redis启动测试1.启动Redis,查看启动进程:./redis-server ./redis.conf2.使用redis-cli客户端连接Redis,在客户端输入quit退出。
-c表示使用Redis-Cluster模式连接,-h表示主机IP,-P表示端口号,-a表示Redis服务需要密码认证。
在本地连接命令:./redis-cli -h 127.0.0.1 -p 63793.远程连接在远程连接时如果防火墙中没有开放Redis的访问端口,需要在防火墙中开放Redis的访问端口。
查看防火墙状态:/etc/init.d/iptables status进入防火墙配置文件,添加Redis相应端口:vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT重新启动防火墙,可以看到Redis的端口添加进去了:service iptables start在192.168.99.128上远程连接:./redis-cli -h 172.16.201.204 -p 63794.Rediscluster部署1.修改配置文件,并指定服务端口号。
vi redis.confport 6379cluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes2.复制多分,作为多个Redis启动节点,启动所有节点。
./redis-server ./redis.confps -ef|grepredis3.创建和管理集群1.跳转到Redis安装目录cd /usr/src/redis-3.2.0/src/2.使用redis-trib.rb程序执行创建命令./redis-trib.rb create --replicas 0 172.16.200.111:6379 172.16.200.111:9001 172.16.200.111:90023.检查集群是否创建成功./redis-trib.rb check 172.16.200.111:90014.添加新节点./redis-trib.rb add-node 172.16.200.111:9003 172.16.200.111:90015.删除节点./redis-trib.rb del-node 172.16.200.111:9003 363a6cb1a09ca596d9edb79c90d885c9a8d9dec46.添加新slave节点./redis-trib.rb add-node --slave --master-id 949233e304116441b23257ca21315c841ac1351d172.16.200.111:9003 172.16.200.111:90017.查看slave节点./redis-cli -p 9002 cluster nodes | grep slave |grep949233e304116441b23257ca21315c841ac1351d8.查看集群信息./redis-trib.rb info 172.16.200.111:90029.重新分配slot./redis-trib.rbreshard 172.16.200.111:90015.Redis在Java开发应用Redis目前已经是主流的缓存数据库,多种编程语言都支持Redis,并有相应客户端。
在java开发中Redis有多种客户端,在开发使用的是Jedis,结合Spring使用。
1.Jedis的jar引入<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.7.1.RELEASE</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.8.1</version></dependency>2.Redis配置文件<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><property name="maxTotal" value="${redis.pool.maxTotal}" /><property name="minIdle" value="${redis.pool.minIdle}" /><property name="maxIdle" value="${redis.pool.maxIdle}" /><property name="maxWaitMillis" value="${redis.pool.maxWait}" /><property name="minEvictableIdleTimeMillis"value="${redis.pool.minEvictableIdle}"></property><property name="numTestsPerEvictionRun" value="${redis.pool.numTestsPer}"></property><property name="timeBetweenEvictionRunsMillis" value="${redis.pool.timeBetween}"></property> <property name="SoftMinEvictableIdleTimeMillis"value="${redis.pool.SoftMinTimeMillis}"></property><property name="testWhileIdle" value="${redis.pool.testWhileIdle}" /><property name="testOnBorrow" value="${redis.pool.testOnBorrow}" /><property name="testOnReturn" value="${redis.pool.testOnReturn}" /></bean><bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool" ><constructor-arg index="0" name="poolConfig" ref="jedisPoolConfig" /><!--<constructor-arg index="1" name="shards" ref="listshard"/>--><constructor-arg index="1" name="shards"><list><bean class="redis.clients.jedis.JedisShardInfo"><constructor-arg name="host" value="${redis.host}" /><constructor-arg name="port" value="6380" type="int" /><constructor-arg name="timeout" value="${redis.timeout}" /><constructor-arg name="name" value="instance:04"/></bean><bean class="redis.clients.jedis.JedisShardInfo"><constructor-arg name="host" value="${redis.host}" /><constructor-arg name="port" value="6382" type="int" /><constructor-arg name="timeout" value="${redis.timeout}" /><constructor-arg name="name" value="instance:05"/></bean></list></constructor-arg></bean>3.Redis.properties文件redis.pool.maxTotal=200redis.pool.minIdle=5redis.pool.maxIdle=20redis.pool.maxWait=5000redis.pool.minEvictableIdle=10000redis.pool.numTestsPer=3redis.pool.timeBetween=5000redis.pool.SoftMinTimeMillis=6000redis.pool.testWhileIdle=falseredis.pool.testOnBorrow=trueredis.pool.testOnReturn=trueredis.timeout=30000#IPredis.host=172.16.200.111#redis.host=172.16.201.204redis.port=63794.封装的redis帮助类:@Service("ShardedJedisCache")public class ShardedJedisCache implements IRedis {@Autowiredprivate ShardedJedisPool jedisPool;private ShardedJedis jedis;public ShardedJedisgetJedis(){if(jedis==null){jedis=jedisPool.getResource();}return jedis;}@Overridepublic void del(byte[] key) {this.getJedis().del(key);}@Overridepublic void del(String key) {this.getJedis().del(key);}@Overridepublic void set(byte[] key, byte[] value, int liveTime) {this.set(key, value);this.getJedis().expire(key, liveTime);}@Overridepublic void set(String key, String value, int liveTime) {this.set(key, value);this.getJedis().expire(key, liveTime);}@Overridepublic void set(byte[] key, byte[] value) {this.getJedis().set(key, value);}@Overridepublic void set(String key, String value) {this.getJedis().set(key, value);}@Overridepublic byte[] get(byte[] key) {return this.getJedis().get(key);}@Overridepublic String get(String key) {return this.getJedis().get(key);}@Overridepublic boolean exists(String key) {return this.getJedis().exists(key);}}11。