Linux安装Redis缓存教程,最简单的一种安装方式「建议收藏」

Linux安装Redis缓存教程,最简单的一种安装方式「建议收藏」1.Redis是什么?Redis 是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库2.官网地址ht

大家好,欢迎来到IT知识分享网。

Linux安装Redis缓存教程,最简单的一种安装方式「建议收藏」

1.Redis是什么?

Redis 是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库

2.官网地址

https://redis.io/

Linux安装Redis缓存教程,最简单的一种安装方式「建议收藏」

3.安装步骤

作为后端开发人员,接触到linux是必不可少的,自己部署项目更是家常便饭了,而缓存也是众多项目的家常菜,今天教大家如何部署redis(本文暂不使用docker方式)

第一步:下载redis

wget http://download.redis.io/releases/redis-4.0.14.tar.gz

IT知识分享网

第二步:解压并安装redis

IT知识分享网tar -vxzf redis-4.0.14.tar.gz
cd redis-4.0.14/
make && make install

第三步:复制config

mkdir -p /etc/redis
cp ./redis.conf /etc/redis/6379.conf

第四步:安装服务

IT知识分享网sh ./utils/install_server.sh

运行以上命令时会出现提示输入,直接按回车即可,最后一个输入y

第五步:检查是否安装成功

redis-server --version
Linux安装Redis缓存教程,最简单的一种安装方式「建议收藏」

第六步:启动/关闭/重启服务

systemctl start redis_6379    #启动
systemctl stop redis_6379    #关闭
systemctl restart redis_6379 #重启

至此redis已经安装完成。


如果需要更改redis的数据路径:(一般情况默认即可)

首先新建数据存储目录:mkdir -p /data/redisdata

然后修改/etc/redis/6379.conf ,找到dir配置修改为: dir /data/redisdata

如果需要设置密码

找到刚才的/etc/redis/6379.conf ,打开配置找到requirepass修改即可,这个本来是注释起来了的,将注释去掉,并将后面对应的字段设置成自己想要的密码

Linux安装Redis缓存教程,最简单的一种安装方式「建议收藏」


人生不会一帆风顺,代码亦如此,以下是我遇到的错误

1、Linux CentOS 7编译redis报错”cc:未找到命令”解决方案

执行命令:

yum -y install gcc automake autoconf libtool make

2、redis安装zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录

执行命令:

make MALLOC=libc

如何使用?Springboot整合redis

  1. 在maven的pom.xml里面加入jar
<!-- SpringBoot集成Redis -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.在yml里面加入连接配置

# 数据源配置
spring:
    # redis配置
    redis:
        host: 127.0.0.1
        database: 0
        port: 6379
        password: null
        timout: 7200
        pool:
            max-active: 30
            max-idle: 20
            min-idle: 5
            max-wait: -1

3.定义RedisConfig类

import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cache.interceptor.KeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;

import java.time.Duration;

/**
 * Redis缓存配置
 */
@Configuration
@EnableCaching
//自动配置
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
public class RedisConfig extends CachingConfigurerSupport {

	/**
	 * 设置 redis 数据默认过期时间,默认1天 设置@cacheable 序列化方式
	 * 
	 * @return
	 */
	@Bean
	public RedisCacheConfiguration redisCacheConfiguration() {
		FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class);
		RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig();
		configuration = configuration
				.serializeValuesWith(
						RedisSerializationContext.SerializationPair.fromSerializer(fastJsonRedisSerializer))
				.entryTtl(Duration.ofDays(1));
		return configuration;
	}

	/**
	 * key 相同不更改数据 暂不确定~
	 */
	@Override
	@Bean
	public KeyGenerator keyGenerator() {
		return (target, method, params) -> {
			StringBuilder sb = new StringBuilder();
			sb.append(target.getClass().getName());
			sb.append(method.getName());
			for (Object obj : params) {
				sb.append(obj.toString());
			}
			return sb.toString();
		};
	}

	@Bean
	public CacheManager cacheManager(RedisConnectionFactory connectionFactory) {
		RedisCacheManager redisCacheManager = RedisCacheManager.builder(connectionFactory).build();
		return redisCacheManager;
	}

	@Bean
	public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory factory) {
		StringRedisTemplate template = new StringRedisTemplate(factory);
		Jackson2JsonRedisSerializer<?> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(
				Object.class);
		ObjectMapper om = new ObjectMapper();
		om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
		om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
		jackson2JsonRedisSerializer.setObjectMapper(om);
		template.setValueSerializer(jackson2JsonRedisSerializer);
		template.afterPropertiesSet();
		return template;
	}

}
    @Autowired
    private RedisTemplate redisTemplate;
        redisTemplate.opsForValue().set("redisKey","您好redis");
        Object redisValue = redisTemplate.opsForValue().get("redisKey");
        System.out.println(String.valueOf(redisValue));
        System.out.println("--------------------------------");
        redisTemplate.opsForValue().set("redisKey2","您好,redis2",300, TimeUnit.DAYS);
        Object redisValue2= redisTemplate.opsForValue().get("redisKey2");
        System.out.println(String.valueOf(redisValue2)+"我是带过期时间的");
				//还有更多的方法需要和大家探讨,共同学习
您好redis
--------------------------------
您好,redis2我是带过期时间的

JAVA改变生活,YYDS

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6082.html

(0)
上一篇 2022-12-18 18:40
下一篇 2022-12-18 19:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信