简介
- 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); } }
浙公网安备 33010602011771号