Redis基础
win10环境Redis安装及配置,以及Redis服务无法启动的解决方法_redis此应用无法在你的电脑上运行-CSDN博客
密码设置: requirepass 123456 启动redis-server : redis-server.exe redis.windows.conf 启动redis-cli: redis-cli.exe -h 127.0.0.1 -p 6379 输入密码 auth 123456
操作命令
key- value value有五种基本数据类型:字符串,哈希 hash,列表list , 集合 set , 有序集合 sorted set
可以在启动redis-cli时加上 --raw ,使得查看的值为原始值,这样中文不会被转成二进制显示 string操作命令: SET key value GET key SETEX key seconds value 设置key的值,过期时间设置为seconds SETNX key value 只有当key不存在时设置key的值
hash:
list:
集合set
有序集合
redis通用命令: keys pattern exists key type key ttl key 返回给定key的剩余生存时间(ttl , time to live) , 以秒为单位 del key
Java中操作redis
Jedis
引入jedis-client依赖
@Test
public void testJedis(){
Jedis jedis = new Jedis("localhost", 6379);
jedis.auth("123456");
jedis.set("username","qiyijin");
String username = jedis.get("username");
System.out.println(username);
jedis.close();
}
springboot-starter-data-redis
导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>x
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>3.1.5</version>
</dependency>
redis相关配置
# Redis相关配置
redis:
host: localhost
port: 6379
password: 123456
# 第0号数据库
database: 0
jedis:
#Redis连接池配置
pool:
max-active: 8
max-wait: 1ms
max-idle: 4
min-idle: 0
redis的测试方法
@Autowired
private RedisTemplate redisTemplate;
/**
* 注意在测试spring-boot-starter-data-redis的时候需要在类上加下面的注解
* @SpringBootTest
* @RunWith(SpringRunner.class)
*/
@Test
public void testString(){
redisTemplate.opsForValue().set("myMeetingName123","imms");
String val = (String) redisTemplate.opsForValue().get("myMeetingName123");
System.out.println(val);
}
redis的config配置类
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory connectionFactory){
RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
//默认的Key序列化器为:JdkSerializationRedisSerializer
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setConnectionFactory(connectionFactory);
return redisTemplate;
}
}
redis线程模型
redis采用单线程为什么还这么快?
- 在内存中运行
- 避免了多线程之间的竞争
- 采用了I/O多路复用机制