一、Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
知识链接:https://www.runoob.com/redis/redis-backup.html
http://how2j.cn/k/redis/redis-commands/1369.html
Redis就像是一个HashMap,不过不是在JVM中运行,而是以一个独立进程的形式运行。
会被当作缓存使用。 因为它比数据库(mysql)快,所以常用的数据,可以考虑放在这里,这样就提高了性能。
1.1 Redis 与其他 key - value 缓存产品有以下三个特点:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
二、本教程讲解如何在Windows上安装Redis
redis官网:http://redis.io
windows版本的下载地址是: http://redis.io/download
2.1 启动客户端:--raw是解决中文乱码问题
cd D:\software\redis-64.3.0.503
redis-cli.exe(--raw)
2.2传值: set lele 18
get lele
三、Redis支持五种数据类型:
public class TestRedis { public static void main(String[] args) { Jedis jedis = new Jedis("localhost"); jedis.set("foo", "bar"); String value = jedis.get("foo"); System.out.println(value); } }
五、Spring对Redis的集成
5.1 这里指定连接 Redis 服务器的相关信息
#ip地址
redis.hostName=127.0.0.1
#端口号
redis.port=6379
#如果有密码
redis.password=
#客户端超时时间单位是毫秒 默认是2000
redis.timeout=2000
#最大空闲数
redis.maxIdle=10
#连接池的最大数据库连接数。设为0表示无限制,如果是jedis 2.4以后用redis.maxTotal
redis.maxActive=10
#控制一个pool可分配多少个jedis实例,用来替换上面的redis.maxActive,如果是jedis 2.4以后用该属性
redis.maxTotal=10
#最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
redis.maxWaitMillis=1000
#连接的最小空闲时间 默认1800000毫秒(30分钟)
redis.minEvictableIdleTimeMillis=300000
#每次释放连接的最大数目,默认3
redis.numTestsPerEvictionRun=1024
#逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
redis.timeBetweenEvictionRunsMillis=30000
#是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个
redis.testOnBorrow=false
#在空闲时检查有效性, 默认false
redis.testWhileIdle=false
5.2 配置连接池,连接工厂等,以上都是为了RedisTemplate 服务,这个类就提供常用的访问 Redis的方法。
然后又把这个 RedisTemplate 类的实例,注入到 RedisUtil 工具类里,方便调用
<context:property-placeholder location="classpath:*.properties" /> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig" > <property name="maxIdle" value="${redis.maxIdle}" /> <property name="maxTotal" value="${redis.maxTotal}" /> <property name="maxWaitMillis" value="${redis.maxWaitMillis}" /> <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}" /> <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}" /> <property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}" /> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> <property name="testWhileIdle" value="${redis.testWhileIdle}" /> bean > <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy"> <property name="poolConfig" ref="jedisPoolConfig">property> <property name="hostName" value="${redis.hostName}">property> <property name="port" value="${redis.port}">property> <property name="password" value="${redis.password}" /> <property name="timeout" value="${redis.timeout}">property> bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref="jedisConnectionFactory" > <property name="keySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" /> property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> property> <property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" /> property> bean > <bean id="redisUtil" class="com.how2java.RedisUtil"> <property name="redisTemplate" ref="redisTemplate" /> bean> beans>
5.3RedisUtil 工具类,封装了 RedisTemplate 这个类,以提供更为便利的 对于 Redis 的访问
六、实际应用
该命令将在 redis 安装目录中创建dump.rdb文件。
如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可。获取 redis 目录可以使用 CONFIG 命令,如下所示:
CONFIG GET dir
"dir"
"/usr/local/redis/bin"以上命令 CONFIG GET dir 输出的 redis 安装目录为 /usr/local/redis/bin。
创建 redis 备份文件也可以使用命令 BGSAVE,该命令在后台执行。