东莞网站建设 环保设备,网站做好了如何发布,网站规划与建设ppt模板下载,wordpress文章付费阅读设置一、redis介绍 简介 Redis 是完全开源的#xff0c;遵守 BSD 协议#xff0c;是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点#xff1a; Redis支持数据的持久化#xff0c;可以将内存中的数据保存在磁盘中#xff0c;重启的时候可…一、redis介绍 简介 Redis 是完全开源的遵守 BSD 协议是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点 Redis支持数据的持久化可以将内存中的数据保存在磁盘中重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据同时还提供listsetzsethash等数据结构的存储。Redis支持数据的备份即master-slave模式的数据备份。 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。原子 – Redis的所有操作都是原子性的意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务即原子性通过MULTI和EXEC指令包起来。丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。 二、redis服务启动 windows下安装 下载地址https://github.com/tporadowski/redis/releases。 Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择这里我们下载 Redis-x64-xxx.zip压缩包到 C 盘解压后将文件夹重新命名为 redis。 开两个cmd窗口一个启动redis-server.exe,一个启动redis-cli.exe linux下安装
指导链接Redis 安装 | 菜鸟教程 (runoob.com)
三、java 中使用redis
pom.xml引入 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId
/dependency
dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId
/dependency
dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactId
/dependency
dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion2.0.32/version
/dependency
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId
/dependencyproperties配置 // 当前为spring 2.x.x版本下配置
spring.datasource.redis.database0
spring.datasource.redis.host127.0.0.1 //redis服务器ip
spring.datasource.redis.password //密码为配置的redis权限密码
spring.datasource.redis.port6379 // sping 3.x.x版本下配置
# Redis 数据库索引默认为0
spring.data.redis.database0
# Redis 服务的ip,我的是在虚拟机的服务器上。
spring.data.redis.host192.168.45.129
# Redis 端口
spring.data.redis.port6379
# Redis 密码默认为空可以修改 redis.conf配置文件
spring.data.redis.password
# 最大可用连接数
spring.redis.pool.max-active200
# 从连接池中获取连接最大等待时间
spring.redis.pool.max-wait-1
# 最大空闲连接数
spring.redis.pool.max-idle10
# 最小空闲连接数
spring.redis.pool.min-idle0
# redis连接超时时间单位为毫秒
spring.data.redis.timeout1000bean创建
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;Configuration
public class RedisConfig {/*** 连接工厂*/Bean//读取配置文件中redis的配置ConfigurationProperties(prefix spring.datasource.redis)public JedisConnectionFactory jedisConnectionFactory() {JedisConnectionFactory jedisConnectionFactory new JedisConnectionFactory();jedisConnectionFactory.afterPropertiesSet();return jedisConnectionFactory;}/*** RedisTemplate* param redisConnectionFactory redis连结* return RedisTemplate*/BeanConditionalOnMissingBean(name redisTemplate)public RedisTemplateString,Object redisTemplate(RedisConnectionFactory redisConnectionFactory) {//StringStringRedisSerializer stringRedisSerializer new StringRedisSerializer();ObjectMapper om new ObjectMapper();//PropertyAccessor.ALL所有JsonAutoDetect.Visibility.ANY修饰范围ANY-所有om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);//指定序列化输入的类型类必须是非final修饰的om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);Jackson2JsonRedisSerializerObject jackson2JsonRedisSerializer new Jackson2JsonRedisSerializer(Object.class);jackson2JsonRedisSerializer.setObjectMapper(om);RedisTemplateString, Object template new RedisTemplate();//连接工厂template.setConnectionFactory(redisConnectionFactory);//全局key的序列化策略template.setKeySerializer(stringRedisSerializer);//全局value的序列化策略template.setValueSerializer(jackson2JsonRedisSerializer);//全局HashKey的序列化策略template.setHashKeySerializer(stringRedisSerializer);//全局HashValue的序列化策略template.setHashValueSerializer(jackson2JsonRedisSerializer);//支持事务template.setEnableTransactionSupport(true);template.afterPropertiesSet();return template;}
}
工具类封装
// 示例具体使用依照自身业务情况而定import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;Component
public class RedisUtil {Autowiredprivate RedisTemplateString, Object redisTemplate;public String getString(String key) {Object value redisTemplate.opsForValue().get(key);System.out.println(value);return value null ? null : value.toString();}public void setValue(String key, Object value) {redisTemplate.opsForValue().set(key, value);}}
四、redis常见指令
【redis-cli --raw】客户端启动避免中文乱码【redis-cli】客户端启动【redis-cli -h host -p port -a password】在远程服务上执行命令【ECHO Hello World】打印给定的字符串【DEL KEY_NAME】删除指定键【AUTH PASSWORD】鉴权登录【EXISTS KEY_NAME】是否存在指定键【Expire KEY_NAME TIME_IN_SECONDS】设置键的过期时间【SET KEY_NAME VALUE】设置键的值【GET KEY_NAME】获取键值【STRLEN KEY_NAME】获取键值的长度【APPEND KEY_NAME NEW_VALUE】拼接新值到旧值【config set requirepass xxx】设置密码为xxx