一:安全 1:可信的环境 Redis以简洁为美.在安全层面Redis也没有做太多的工作.Redis的安全设计是在"Redis运行在可信环境"这个前提下做出的.在生产环境运行时不能允许外界直接连接到 Redis 服务器上,而应该通过应用程序进行中转,运行在可信的环境中是保证Redis安全的最重要方法. Redis的默认配置会接受来自任何地址发送来的请求,要更改这一设置,可以修改配置文件中的bind参数,如只允许若干IP连接Redis,可如下修改: bind 192.168.1.100 1…
现实项目中通常需要若干台Redis服务器的支持: 结构上,单个 Redis 服务器会发生单点故障,而且一台服务器需要承受所有的请求负载.这就需要为数据生成多个副本并分配在不同的服务器上: 容量上,单个 Redis 服务器的内存非常容易成为存储瓶颈,所以需要进行数据分片. 同时拥有多个 Redis 服务器后就会面临如何管理集群的问题,包括如何增加节点.故障恢复等操作. 一:复制(replication) 为了避免单点故障,通常的做法是将数据库复制多个副本以部署在不同的服务器上,这样即使有一台服务器…
xm命令是管理Xen的最基本的工具,可以通过xm --help 来获得帮助. 1. 列出所有正在运行的虚拟操作系统 # xm list PS[1]:可缩写为 xm li 2. 启动虚拟机 # 通过配置文件启动虚拟机 # xm create <ConfigFile> # 通过虚拟机名称启动虚拟机,虚拟机必需已存在 xm list 中 # xm start <DomainName> 参数说明: ConfigFile:虚拟机配置文件 DomainName: 虚拟机名称 PS[2]:很多教…
package com.ulearning.ulms.util; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServle…
7.1 持久化 1.RDB方式 2.AOF方式 Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集. AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾. Redis 还可以在后台对 AOF 文件进行重写(rewrite),…
一:事务 1:概述 Redis中的事务(transaction)是一组命令的集合.事务同命令一样都是Redis的最小执行单位,一个事务中的命令要么都执行,要么都不执行. 事务的原理是是先将属于一个事务的所有命令都发送给Redis,然后再让Redis依次执行这些命令.比如: > multi OK > sadd aset QUEUED > sadd aset QUEUED > exec ) (integer) ) (integer) 上面的代码演示了事务的使用方式.首先使用multi命…
即使使用哨兵,此时的 Redis 集群的每个数据库依然存有集群中的所有数据,从而导致集群的总数据存储量受限于所有节点中,内存最小的数据库节点,形成木桶效应. 对 Redis 进行水平扩容,在旧版Redis 中通常使用客户端分片来解决这个问题,即启动多个 Redis 数据库节点,由客户端决定每个键交由哪个数据库节点存储,下次客户端读取该键时直接到该节点读取. 这种实现将整个数据分布存储在N个数据库节点中,每个节点只存放总数据量的 1/N.但对于需要扩容的场景来说,在客户端分片后,如果想增加更多的节…
Redis的强劲性能很大程度上是由于将所有数据都存储在了内存中,然而当Redis重启后,所有存储在内存中的数据就会丢失.在一些情况下,希望Redis能将数据从内存中以某种形式同步到硬盘中,使得重启后可以根据硬盘中的记录恢复数据.这一过程就是持久化. Redis支持两种方式的持久化,一种是RDB方式,另一种是AOF方式.前者会根据指定的规则将内存中的数据存储在硬盘上,而后者在每次执行命令后将命令本身记录下来.两种持久化方式可以单独使用其中一种,但更多情况下是将二者结合使用. 一:RDB方式 RDB…
一:热身 获得符合规则的健名列表:keys  pattern pattern支持glob风格的通配符,具体规则如下表: Redis命令不区分大小写.keys命令需要遍历Redis中的所有健,当键的数量较多时会影响性能,不建议在生产环境中使用. 判断一个键是否存在:exists  key 如果键存在则返回整数类型1,否则返回0. 删除键:del  key [key ...] 返回值是删除键的个数,del命令的参数不支持通配符. 获取键值的数据类型:type  key 返回值可能是string(字符…
一:简介 Redis是一个开源的高性能key-value数据库.Redis是Remote DIctionary Server(远程字典服务器)的缩写,它以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容.Redis字典中的value支持的数据类型有:字符串,散列,列表,集合,有序集合. Redis数据库中的所有数据都存储在内存中,内存的读写速度远快于硬盘,因此Redis在性能上对比其他基于硬盘存储的数据库有非常明显的优势.但是将数据存储在内存中也有问题,程序退出后内存中的数据会丢失…