!
快速入门
安装
1.使用docker安装redis
docker pull redis
docker run -d --name redis -p 6379:6379 --restart unless-stopped -v /etc/docker/Redis/data:/data -v /etc/docker/Redis/conf/redis.conf:/usr/local/etc/redis/redis.conf redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
#/your/local/path--这个是做持久化处理,把数据存储在主机下的该路径
进入redis容器
### 通过 Docker 命令进入 Redis 容器内部
docker exec -it redis /bin/bash
docker exec -it redis bash
### 进入 Redis 控制台
redis-cli
### 添加一个变量为 key 为 name , value 为 bella 的内容
> set name bella
### 查看 key 为 name 的 value 值
> get name
### 或者也可以直接通过Docker Redis 命令进入Redis控制台 (上面两个命令的结合)
docker exec -it redis redis-cli
#密码
AUTH password
#退出
exit
当连接上之后可以通过ping,redis会回复pong
2.在win上安装redis
通过解压D:\Redis\redis4.0.0\Redis-x64-3.2.100.zip
然后在cmd中输入>redis-server.exe redis.windows.conf
(可以使用tab补全文件名)就成功启动了
设置密码---->找到配置文件中的 requirepass titi
titi为密码
常见的数据类型
- 字符串 string
- 哈希 hash
- 列表 list
- 集合 set
- 有序集合 sorted set / zset
数据类型的特定
常见的命令
字符串操作命令
哈希操作命令
列表操作命令
集合操作命令
有序集合操作命令
通用命令
在java中操作redis
- 导入Spring data redis 的maven坐标
- 配置redis数据源
- 编写配置类,创建redisTemplate对象(不写也能用)
- 通过Redis Template对象操作Redis
配置类
@Configuration
@Slf4j
public class RedisConfiguration {
@Bean
public RedisTemplate redisTemplate(RedisConnectionFactory factory){
log.info("开始创建创建Redis模板");
RedisTemplate redisTemplate=new RedisTemplate();
//设置redis的连接工厂对象
redisTemplate.setConnectionFactory(factory);
//设置序列化器
redisTemplate.setKeySerializer(new StringRedisSerializer());
return redisTemplate;
}
}
快速使用
@Autowired
@Qualifier("redisTemplate")
private RedisTemplate template;
@Test
public void testTemplate() {
System.out.println(template);
ValueOperations valueOperations = template.opsForValue();
HashOperations hashOperations = template.opsForHash();
SetOperations setOperations = template.opsForSet();
ListOperations listOperations = template.opsForList();
ZSetOperations zSetOperations = template.opsForZSet();
}
/**
* 操作字符串类型的数据
*/
@Test
public void testString(){
//set get setex setnx
template.opsForValue().set("city","北京");
String city = String.valueOf(template.opsForValue().get("city"));
System.out.println(city);
//健、值、过期时间、时间单位
template.opsForValue().set("code","123321",3, TimeUnit.MINUTES);
//setnx
template.opsForValue().setIfAbsent("lock",1);
}
@Test
public void testHash(){
//hset hget hdel hkeys hvals
template.opsForHash().put("100","name","tom");
template.opsForHash().put("100","age","20");
String name = String.valueOf(template.opsForHash().get("100", "name"));
System.out.println(name);
Set keys = template.opsForHash().keys("100");
System.out.println(keys);
List values = template.opsForHash().values("100");
System.out.println(values);
template.opsForHash().delete("100","age");
}
s);
List values = template.opsForHash().values("100");
System.out.println(values);
template.opsForHash().delete("100","age");
}