安装redis教程

RedisRedishttps://redis.io/download#download

Redis

安装步骤按照下面命令一行一行的输入

1 下载

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

2 解压

tar xzf redis-5.0.5.tar.gz

3 进入文件夹

cd redis-5.0.5

4 初始化

make

5 安装

make install

6启动服务

src/redis-server

7 重新开一个窗口 连接服务器

src/redis-cli

8测试 添加数据库

Redis127.0.0.1>   set foo bar

OK

9 测试取出数据库

Redis127.0.0.1>   get foo

"bar"

通过面板打开6379 端口

修改redis.conf

注释掉bind 127.0.0.1可以使所有的ip访问redis

若是想指定多个ip访问,但并不是全部的ip访问,可以bind

修改:protected-mode no

守护进程打开

daemonize yes

requirepass 密码设置

停止服务

./redis-cli shutdown

设置服务

# ./utils/install_server.sh

Redis服务查看、开启、关闭

查看redis进程

# ps aux | grep -v grep | grep redis-server

启动服务

# service redis_6379 start

停止服务

# service redis_6379 stop

连接redis服务

# redis-cli -h 192....   -p 6379

查看redis相关信息

打开防火墙端口号哦

##Add

firewall-cmd --permanent --zone=public --add-port=6379/tcp

##Reload

firewall-cmd --reload

##检查是否生效

firewall-cmd --zone=public --query-port=6379/tcp

springboot 使用教程

1 复制下面的序列化 设置类

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
    private static final Logger logger = LoggerFactory.getLogger(RedisConfig.class);
    @Bean
    public RedisCacheConfiguration redisCacheConfiguration() {
        ObjectMapper om=new ObjectMapper();
        //序列化的时候序列对象的所有属性
       // om.setSerializationInclusion(Include.ALWAYS);
        //反序列化的时候如果多了其他属性,不抛出异常
        om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        //如果是空对象的时候,不抛异常
        om.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);

        //取消时间的转化格式,默认是时间戳,可以取消,同时需要设置要表现的时间格式
        om.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);

        //设置时间序列化
        om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
        //设置 反序列化为对象 而不是 linkedList
        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY);

        GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer =
                new GenericJackson2JsonRedisSerializer(om );

        return RedisCacheConfiguration
                .defaultCacheConfig()
                .serializeKeysWith(
                        RedisSerializationContext
                                .SerializationPair
                                .fromSerializer(new StringRedisSerializer()))
                .serializeValuesWith(
                        RedisSerializationContext
                                .SerializationPair
                                .fromSerializer(genericJackson2JsonRedisSerializer));

    }

    @Override
    @Bean
    public CacheErrorHandler errorHandler() {
        // 异常处理,当Redis发生异常时,打印日志,但是程序正常走
        logger.info("初始化 -> [{}]", "Redis CacheErrorHandler");
        CacheErrorHandler cacheErrorHandler = new CacheErrorHandler() {
            @Override
            public void handleCacheGetError(RuntimeException e, Cache cache, Object key) {
                logger.error("Redis occur handleCacheGetErrorkey -> [{}]", key, e);
            }

            @Override
            public void handleCachePutError(RuntimeException e, Cache cache, Object key, Object value) {
                logger.error("Redis occur handleCachePutErrorkey -> [{}]value -> [{}]", key, value, e);
            }

            @Override
            public void handleCacheEvictError(RuntimeException e, Cache cache, Object key) {
                logger.error("Redis occur handleCacheEvictErrorkey -> [{}]", key, e);
            }

            @Override
            public void handleCacheClearError(RuntimeException e, Cache cache) {
                logger.error("Redis occur handleCacheClearError", e);
            }
        };
        return cacheErrorHandler;
    }
}

2 修改pom 添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    <scope>compile</scope>
</dependency>

3 service 上添加注解

 @Cacheable(value ="salChance" ,key = "#id")     //最后的key为salchance::1  1是id
public SalChance findOne(Integer id) {

   SalChance result = salChanceDao.selectSalChanceById(id);

   return result;
}

4 记得要在主配置 application.properties加上连接字符串

logging.level.com.situ=DEBUG

# Redis数据库索引(默认为0
spring.redis.database=0  
# Redis服务器地址
spring.redis.host=192.168.128.133
# Redis服务器连接端口
spring.redis.port=6379  
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制)
spring.redis.jedis.pool.max-active=200
# 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.jedis.pool.max-wait=-1ms
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=10
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=0  
# 连接超时时间(毫秒)
spring.redis.timeout=2000ms

注解的具体使用

    @Cacheable(value="users", key="#user.id")

   public User find(User user) {

      returnnull;

   }

@Cacheable(value="users", key="#id")

   public User find(Integer id) {

Key还可以这样写!

属性名称

描述

示例

methodName

当前方法名

#root.methodName

method

当前方法

#root.method.name

target

当前被调用的对象

#root.target

targetClass

当前被调用的对象的class

#root.targetClass

args

当前方法参数组成的数组

#root.args[0]

caches

当前被调用的方法使用的Cache

#root.caches[0].name

可以将“#root”省略

condition属性指定发生的条件

  @Cacheable(value={"users"}, key="#user.id", condition="#user.id%2==0")

   public User find(User user) {

@CachePut 不管有没有缓存都写入缓存

@CacheEvict  删除指定的缓存

 @CacheEvict(value ="SalChance" ,key = "#value.chcId")
   @Caching(evict = {@CacheEvict(value ="SalChance" ,key = "#value.chcId"),
           @CacheEvict(value ="SalChance",key = "'find'")})
public int updateNotNullById(SalChance value) {

最后的例子

@CacheConfig(cacheNames="Food")
public class 类名上{

@Cacheable(key = "#pageNum+'_'+#pageSize")

查询方法上(){}

@CacheEvict(allEntries=true)

增删改方法上(){}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学跑的猿

制作不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值