简介

  • Redis是一个纯粹基于C语言的开源项目
  • Redis是一个意大利人开发的数据库,但是他只提供了linux版本的
  • 后续有人针对这个开源项目做了封装,使之可以运行在Windows平台
  • 微软封装的版本只更新到2016年
  • 推荐使用tporadowski封装的版本

 背景

  • 键值对存储数据库
  • 高性能
  • 提供主从服务器的数据同步
  • 值类型可以是哈希、字符串、列表、集合等,被称作数据结构服务器
  • 默认端口是6379

 

在Windows下载安装

下载

(来自博主:梦想的天空

https://pan.baidu.com/s/1ZRzMaS5eqCPaotX5DljY3w&shfl=sharepset 

提取码:spf0 

 配置

编辑redis.windows.conf

找到对应内容,如果不一样可以修改,如果被注释掉就解注释

# 处理指定IP的请求,否则会处理所有请求,不安全
bind 127.0.0.1 
# 设置端口
port 6379 
# 设置数据保存路径
dir D:\software\redis\data
# 设置密码
requirepass 123456

 其他操作

解压后cmd进入安装目录

  • 安装服务:redis-server.exe --service-install redis.windows.conf --service-name redisserver1 --loglevel verbose
  • 启动服务:redis-server.exe  --service-start --service-name redisserver1
  • 停止服务:redis-server.exe  --service-stop --service-name redisserver1
  • 卸载服务:redis-server.exe  --service-uninstall --service-name redisserver1

检查

redis-cli.exe -h 127.0.0.1 -p 6379 

 

 

语法

登录

# 登录
redis-cli -h 10.0.0.10 -p 6379
# 进行密码验证,否则不能进行其他操作
auth 123456(密码)

增加

# 新增键值对
set <key> <value>
# 新增数据并设置存在时间,设置名称为tom并且设置存在时间为1200秒
set name tom EX 1200
# 插入hash数据,创建hash student:{name:tom,age:18}
hset student name tom
hset student age 18
# 新增列表[tom,lili],列表具有去重功能
sadd names tom lili

# 新增有序集合,相对于集合来说,有序集合可以指定排序,排序的依赖为每个value前面的数字,如下,创建一个有序集合[a,b,c]
zadd letters 9 b 14.4 c 2 a

删除

# 删除键值对
del <key_name>

# 修改值
set <key> <value>

# 查询值
get <key>
# 列出所有键值对
keys *

# 读取哈希 student:{name:tom,age;18}
hget student name

#展示列表
smembers names

#展示有序集合,展示第1到第13个值
zrange names 0 12

 

在java使用redis

在application.yaml配置redis

spring:
  redis:
    host: 127.0.0.1
    port: 6379

导入依赖

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>

注入bean

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

使用

/**
     * 通过用户名查找
     * @param
     */
    public User findByUsername(String username){
        // 查看redis缓存中是否存储有,有的话就不去数据库查询
        Gson gson = new Gson();
        if(redisTemplate.hasKey(username)){
            // 从redis获取对象
            return gson.fromJson(redisTemplate.opsForValue().get(username),User.class);
        }else {
            List<User> users = userRepository.findByUsername(username);
            if(users.isEmpty()){
                return null;
            }
            // 向redis存储对象,并设置存在时间为120秒
            redisTemplate.opsForValue().set(username,gson.toJson(users.get(0)),120, TimeUnit.SECONDS);
            return users.get(0);
        }
    }

 

 

 

参考

Windows安装Redis数据库

redis登录操作,及基本操作