Redis本地安装

常*

java,redis,缓存

项目描述

Redis 是一个开源(BSD 许可)、内存中数据结构存储,用作数据库、缓存和消息代理。

上传时间

2023.02.21

浏览人数

402人
常*
天津市河东区
Hot:2655

一、获取Redis安装文件的压缩包

(过程略,建议做伸手党)


二、解压缩

创建Redis安装目录,将压缩包解压至目录下。

Redis本地安装


三、安装Redis

在安装目录的地址栏输入cmd,进入Windows命令提示符,输入下列指令。

redis-server.exe --service-install redis.windows.conf

这一步是为了将Redis注册到电脑的服务中,方便下一步设置开机启动。

得到下图反馈内容,即为安装成功。

Redis本地安装

四、设置开机启动

找到"我的电脑",右键选择"管理",点击左侧的"服务",找到 Redis 双击打开,启动类型选择"自动",点击启动。

至此,开机自动运行Redis服务设置完成。

Redis本地安装


五、安装Redis可视化工具:RedisDesktopManager

安装过程略,安装完成后运行,界面如图所示。

Redis本地安装


六、可视化工具连接Redis服务

点击左下方绿色➕

Name自行填写;Host填写IDEA启动域名(本地为127.0.0.1);Port填写Redis默认占用的端口6379。

Redis本地安装


七、在IDEA里配置Redis

①在 pom.xml 内添加依赖

[ Fastjson是一个java库,可以将java对象转换为JSON格式,也可将JSON格式转换为java对象 ]

<!--redis技术依赖-->
<dependency>
    <groupId>
org.springframework.boot</groupId>
    <artifactId>
spring-boot-starter-data-redis</artifactId>
</dependency>

<!-- fastjson依赖 -->
<dependency>
    <groupId>
com.alibaba</groupId>
    <artifactId>
fastjson</artifactId>
    <version>
1.2.15</version>
</dependency>

②在 application.properties 内添加配置文件

host:IDEA启动域名(本地为localhost);

port:Redis默认占用端口6379;

password:连接本地Redis无需密码;

database:选择存值的表,按照 RedisDesktopManager 的索引进行选择(例:0对应db0)。

# redis配置
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.password=
spring.redis.database=0

③建立配置包,创建配置类

Redis本地安装

@Configuration
public class RedisConfig {
   
@Bean
   
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        RedisTemplate<Object
, Object> redisTemplate = new RedisTemplate<>();
       
redisTemplate.setConnectionFactory(redisConnectionFactory);

       
// 使用Jackson2JsonRedisSerialize 替换默认序列化
       
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);

       
ObjectMapper objectMapper = new ObjectMapper();
       
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
       
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
       
jackson2JsonRedisSerializer.setObjectMapper(objectMapper);

        
// 设置value的序列化规则和 key的序列化规则
       
redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
       
redisTemplate.setKeySerializer(new StringRedisSerializer());
       
redisTemplate.afterPropertiesSet();
        return
redisTemplate;
   
}
}

④创建 Service层 和 Impl层

Service层如下所示:

@Service
public interface RedisService {
   //保存数据
   
boolean set(final String key, Object val);
   
//保存数据 带失效时间
   
boolean set(final String key, Object val, long timeAsSecond);
   
//获取数据
   
Object get(final String key);
   
// 存值到redis的Map中
   
boolean setMap(final String key, String itemKey, Object val);
   
// 存值到redis的Map中 带失效时间
   
boolean setMap(final String key, String itemKey, Object val, long timeAsSecond);
   
// 取值 Map 所有
   
Object getMap(final String key);
   
// 取值 Map
   
Object getMap(final String key, String itemKey);
   
//删除key
   
boolean deleteByKey(final String key);
   
//删除Map下的指定key
   
boolean deleteMap(final String key, String itemKey);
   
//添加到List
   
boolean setList(final String key, Object val);
   
//添加到List 带失效时间
   
boolean setList(final String key, Object val,long timeAsSecond);
   
//获取List中所有数据
   
List<Object> getList(final String key);
   
//获取list中指定索引的数据
   
Object getList(final String key, long idx);
}

Impl层如下所示:

@Service
public class RedisServiceImpl implements RedisService {

   @Autowired
   
private RedisTemplate redisTemplate;
   
//保存数据
   
@Override
   
public boolean set(String key, Object val) {
       try {
           ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
           
operations.set(key, val);
           return true;
       
} catch (Exception e) {
           return false;
       
}
   }
   //保存数据 带失效时间
   
public boolean set(final String key, Object val, long timeAsSecond) {
       try {
           ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
           
operations.set(key, val);
           
redisTemplate.expire(key, timeAsSecond, TimeUnit.SECONDS);
           return true;
       
} catch (Exception e) {
           return false;
       
}
   }
   //获取数据
   
@Override
   
public Object get(String key) {
       try {
           ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
           return
operations.get(key);
       
} catch (Exception e) {
           return null;
       
}
   }
   // 存值到redis的Map中
   
@Override
   
public boolean setMap(String key, String itemKey, Object val) {
       try {
           redisTemplate.opsForHash().put(key, itemKey, val);
           return true;
       
} catch (Exception e) {
           return false;
       
}
   }
   // 存值到redis的Map中 带失效时间
   
@Override
   
public boolean setMap(String key, String itemKey, Object val, long timeAsSecond) {
       try {
           redisTemplate.opsForHash().put(key, itemKey, val);
           
redisTemplate.expire(key, timeAsSecond, TimeUnit.SECONDS);
           return true;
       
} catch (Exception e) {
           return false;
       
}
   }
   // 取值 Map 所有
   
@Override
   
public Object getMap(String key) {
       try {
           return redisTemplate.opsForHash().entries(key);
       
} catch (Exception e) {
           return null;
       
}
   }
   // 取值 Map
   
@Override
   
public Object getMap(String key, String itemKey) {
       try {
           return redisTemplate.opsForHash().get(key, itemKey);
       
} catch (Exception e) {
           return null;
       
}
   }
   //删除key
   
@Override
   
public boolean deleteByKey(String key) {
       return redisTemplate.delete(key);
   
}
   //删除Map下的指定key
   
@Override
   
public boolean deleteMap(String key, String itemKey) {
       long deleted = redisTemplate.opsForHash().delete(key, itemKey);
       return
deleted != 0 ? true : false;
   
}
   //添加到List
   
@Override
   
public boolean setList(String key, Object val) {
       long added = redisTemplate.opsForList().rightPush(key, val);
       return
added != 0 ? true : false;
   
}
   //添加到List 带失效时间
   
@Override
   
public boolean setList(String key, Object val, long timeAsSecond) {
       long added = redisTemplate.opsForList().rightPush(key, val);
       
redisTemplate.expire(key, timeAsSecond, TimeUnit.SECONDS);
       return
added != 0 ? true : false;
   
}
   //获取List中所有数据
   
@Override
   
public List<Object> getList(String key) {
       return redisTemplate.opsForList().range(key, 0, -1);
   
}
   //获取list中指定索引的数据
   
@Override
   
public Object getList(String key, long idx) {
       return redisTemplate.opsForList().range(key, 0, -1).get((int)idx);
   
}

}


八、使用方法

需要加入Redis缓存或进行其他相关操作时,直接调用 Service层  的相应函数即可。


==========END==========

4.8分

可以再细致一些哟~ 继续加油吧
Django 天津Java培训 天津Java培训班 天津Java培训哪家好?天津Java培训机构 java python ajax 天津Java培训 天津Java培训班 天津Java培训班管用吗 天津Java培训班哪家好 Java 天津Java培训 Java培训 天津编程培训 Java Java培训班 Eclipse Tomcat Git 天津Java培训 Java培训 天津编程培训 Java Java培训班 Eclipse MyEclipse IntelliJ IDEA 天津Java培训 Java培训班 Java开发 Java 天津Java开发培训 Eclipse MyEclipse 天津Java培训 天津Java开发培训 天津Java培训班 Eclipse MyEclipse 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 C/C++ Java Python 天津Java培训 天津Java开发培训 天津Java培训班 Java开发培训 Java python web前端 天津Java培训 天津Java 培训班 天津Java培训机构 天津Java开发培训 Editplus ltraEdit Eclipse 天津Java培训 天津Java培训班 Java开发培训 Java培训机构 ps ai 天津Java培训 天津Java培训班 天津Java培训机构 Java培训 Java开发培训 java python web 天津Java培训 天津Java培训机构 天津Java培训班 天津Java培训学校 java python web 天津Java培训 天津Java培训机构 天津Java培训学校 天津Java培训哪家好 Java python web 天津Java培训 天津Java培训学校 Java python web 天津Java培训 天津Java 开发培训 天津Java开发培训机构 java python web 天津Java培训 天津Java培训机构 Java培训班 天津Java培训学校 Java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java培训 Java python web 天津Java培训 天津Java培训机构 天津Java培训班 Java培训 java web python 天津Java培训 天津Java培训班 天津Java培训学校 Java培训机构 Java培训 java python web 天津Java培训 天津Java培训机构 Java培训 天津Java培训学校 java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java培训学校 java python web 天津Java培训 天津Java培训班 天津Java培训学校 Java培训 java python web 天津Java培训 天津Java配训学校 Java培训 java web python 天津Java培训 天津Java培训班 Java培训机构 Java培训 Java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java培训 java python web 天津Java培训 天津Java培训班 天津Java培训机构 java python web 天津Java培训 天津Java培训班 天津Java培训机构 Java web python 天津Java培训 天津Java培训学校 Java培训 java web python 天津Java培训 天津Java培训机构 Java培训 java web python 天津Java培训 天津Java培训机构 Java培训 java web python 天津Java培训 天津Java培训机构 Java培训 java web python 天津Java培训 天津Java培训班 Java培训 java web python 天津Java培训 天津Java培训班 Java培训机构 java python web 天津Java培训 天津Java培训哪家好
常*    2655 天津市河东区 设计师杨冰是女孩 1992.**.**
本网站已在中国版权保护中心登记了美术作品著作权与软件著作权违者将依法追究责任,特此声明! | Copyright©2013-2022,zhuzuoji.com | 诚筑说培训学校(天津)有限公司内容支持 | 京ICP备17020986号-5