redis安装配置及springboot集成

redis安装配置及springboot集成

暂时只有windows环境,后续补充linux

Windows环境

一、安装与配置

1.redis简介

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

redis是一种高级的key:value存储系统,其中value支持五种数据类型:

1.字符串(strings) 2.字符串列表(lists) 3.字符串集合(sets) 4.有序字符串集合(sorted sets) 5.哈希(hashes)

注意事项:

1.key不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率; 2.key也不要太短,太短的话,key的可读性会降低; 3.在一个项目中,key最好使用统一的命名模式,例如user:10000:passwd。

具体redis命令语句直接在网上搜索即可。

2.下载

直接redis官网下载Download | Redis就完了(找个不然github不一定能访问到),要是说没有那就私我。

3.安装及配置

压根不需要直接解压缩就OK啦。

redis安装配置及springboot集成_第1张图片

4.使用

redis分为服务端和客户端,exe文件双击启动。

redis安装配置及springboot集成_第2张图片

二、springboot集成

1.依赖

    org.springframework.boot
    spring-boot-starter-data-redis
2.redis配置
server:
    port: 8080
spring:
    #redis相关配置
    redis:
    database: 5
    # 配置redis的主机地址,需要修改成自己的
    host: 127.0.0.1
    port: 6379
    # 默认密码为空
    password: 
    timeout: 5000
    jedis:
        pool:
        # 连接池中的最大空闲连接,默认值也是8。
        max-idle: 500
        # 连接池中的最小空闲连接,默认值也是0。
        min-idle: 50
        # 如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)
        max-active: 1000
        # 等待可用连接的最大时间,单位毫秒,默认值为-1,表示永不超时。如果超过等待时间,则直接抛出JedisConnectionException
        max-wait: 2000
3.redis模板

redis有两个模板:RedisTemplate 和 StringRedisTemplate。我们不使用 RedisTemplate,RedisTemplate 提供给我们操作对象,操作对象的时候,我们通常是以 json 格式存储,但在存储的时候,会使用 Redis 默认的内部序列化器;导致我们存进里面的是乱码之类的东西。

所以使用 StringRedisTemplate 模板。

4.具体事例

这里只放string类型。

先做一个service,里面放置一些可以使用的redis方法

import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;
​
import javax.annotation.Resource;
import java.util.List;
​
@Service
public class RedisService {
    @Resource
    private StringRedisTemplate stringRedisTemplate;
​
    /**
     * 删除多个key
     * @param keyList
     */
    public void delListKey(List keyList){
        stringRedisTemplate.delete(keyList);
    }
​
    /**
     * 删除key
     * @param key
     */
    public void delKey(String key){
        stringRedisTemplate.delete(key);
    }
​
    /**
     * set redis: string类型
     * @param key key
     * @param value value
     */
    public void setString(String key, String value){
        ValueOperations valueOperations = stringRedisTemplate.opsForValue();
        valueOperations.set(key, value);
    }
    /**
     * get redis: string类型
     * @param key key
     * @return
     */
    public String getString(String key){
        return stringRedisTemplate.opsForValue().get(key);
    }
​
    /**
     * incrByString redis: string类型
     * 将某个key增加num
     * @param key
     * @param num
     */
    public void incrByString(String key,Integer num){
        stringRedisTemplate.opsForValue().increment(key, num);
    }
​
    /**
     * incrString redis: string类型
     * 将某个key增加1
     * @param key
     */
    public void incrString(String key){
        stringRedisTemplate.opsForValue().increment(key);
    }
​
    /**
     * decrByString redis: string类型
     * 将某个key减少num
     * @param key
     * @param num
     */
    public void decrByString(String key,Integer num){
        stringRedisTemplate.opsForValue().decrement(key,num);
    }
​
    /**
     * decrString redis: string类型
     * 将某个key减少1
     * @param key
     */
    public void decrString(String key){
        stringRedisTemplate.opsForValue().decrement(key);
    }
}

然后直接调动使用。

import com.hyq.rediskafka.service.RedisService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
​
@RestController
public class redisController {
​
    @Autowired
    private RedisService redisService;
​
    @RequestMapping("/getRedisData")
    public void getRedisData(){
        redisService.setString("hyqCount","20");
        
        redisService.incrString("hyqCount");
        String hyqCountIncr = redisService.getString("hyqCount");
        System.out.println(hyqCountIncr);
        
        redisService.decrString("hyqCount");
        String hyqCountDecr = redisService.getString("hyqCount");
        System.out.println(hyqCountDecr);
        
        redisService.decrByString("hyqCount",5);
        String hyqCountDecrBy = redisService.getString("hyqCount");
        System.out.println(hyqCountDecrBy);
        
        redisService.delKey("hyqCount");
        String hyqCountDel = redisService.getString("hyqCount");
        System.out.println(hyqCountDel);
    }
}

你可能感兴趣的:(redis)