Redis windows版 cmd指令
redis-server.exe redis.windows.conf 启动服务
直接ctrl + c 关闭服务
用客户端启动
在启动服务的情况下执行redis-cli.exe
退出客户端 : exit
使用客户端连接服务 : redis-cli.exe -h localhost -p 6379 -a 123456
-a后面是密码
在redis配置文件修改密码
requirepass ****
常见数据类型
Redis存放的是key-value结构的数据,key是字符串类型
对于value,有5中常见类型
- 字符串string : 最基本的类型,可包含任意格式的文本或二进制数据
- 哈希hash : 存放的是字段-值的映射,适合保存对象
- 列表list : 按插入顺序保存元素,可以有重复,可用来当做栈,队列等
- 集合set : 无序集合,没有重复,可以计算交集 并集 差集
- 有序集合sorted set / zset : 有序的集合,每个元素关联一个分数,根据这个分数升序排列
String操作常见命令
- SET key value : 设置指定key的值
- GET key : 获取指定key的值
- SETEX key seconds value : 设置指定key的值,并设定key的过期时间为seconds
- SETNX key value : 只有在key不存在时设置key的值
Hash常见操作命令
- HSET key field value : 将key对应表的字段field的值设为value
- HGET key field : 获取表中字段field的值
- HDEL key field : 删除表中字段field
- HKEYS key : 获取表中的所有字段
- HVALS key : 获取表中所有值
List常见操作命令
- LPUSH key value1 [value2] : 从左侧插入一个或多个值
- LRANGE key start stop : 获取列表指定范围内的元素
- RPOP key : 从列表右侧移除并返回一个元素
- LLEN key : 获取列表的长度
- LINDEX key 1 : 获取key对应列表的第2个元素
Set常见操作命令
-
SADD key member1 [member2] : 向集合中添加一个或多个成员
-
SREM key member1 [member2] : 向集合中删除一个或多个成员
-
SUNION key1 [key2] : 求两集合的并集
-
SINTER key1 [key2] : 求两集合的交集
-
SDIFF key1 [key2] : 求两集合的差集
-
SMEMBERS key : 获取集合中所有成员
-
SCARD key : 获取集合中的成员个数
Sort Set常见操作命令
- ZADD key score1 member [score2 member] :添加元素和元素的分值
- ZRANGE key start stop [WITHSCORES] : 获取指定范围内的元素[和分值]
- ZINCRBY key increment member : 给指定的元素增加increment的分值
- ZREM key member [member] : 删除指定的成员
通用命令
- KEYS pattern :查找所有符合给定模式(比如*)的key
- EXISTS key : 检查key是否存在
- TYPE key : 返回key所对应的值的类型
- DEL key : key存在时,删除key
Redis的Java客户端
Jedis : Redis官方推荐,功能全面
Lettuce : 基于netty这个多线程框架来实现,性能高效
Spring Data Redis : Spring的一部分,对Redis底层进行了高度的封装
Spring Data Redis
- 导入maven坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 通过配置文件,配置Redis数据源
- 编写配置类,创建RedisTemplate对象
@Configuration
public class RedisConfiguration {
//1.在配置类中注入RedisConnectionFactory,连接工厂对象
@Bean
public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory redisConnectionFactory){
//2.配置序列化方式
//这里的泛型是指定了redis中key,value的类型
RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
//设置连接工厂对象
redisTemplate.setConnectionFactory(redisConnectionFactory);
//设置key的序列化器,因为数据在Redis和Java传递时,需要序列化和反序列化
redisTemplate.setKeySerializer(new StringRedisSerializer());
//设置value的序列化器,这里没给
return redisTemplate;
}
}
- 通过模板注入对象操作Redis,这里给出对String类型操纵的例子
redisTemplate.opsForValue().set("city","北京");
String city = (String) redisTemplate.opsForValue().get("city");