Redis基本操作

129 阅读3分钟

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的值

image-20230825152936564.png

Hash常见操作命令
  • HSET key field value : 将key对应表的字段field的值设为value
  • HGET key field : 获取表中字段field的值
  • HDEL key field : 删除表中字段field
  • HKEYS key : 获取表中的所有字段
  • HVALS key : 获取表中所有值

image-20230825161040836.png

List常见操作命令
  • LPUSH key value1 [value2] : 从左侧插入一个或多个值
  • LRANGE key start stop : 获取列表指定范围内的元素
  • RPOP key : 从列表右侧移除并返回一个元素
  • LLEN key : 获取列表的长度
  • LINDEX key 1 : 获取key对应列表的第2个元素

image-20230825165808866.png

Set常见操作命令
  • SADD key member1 [member2] : 向集合中添加一个或多个成员

  • SREM key member1 [member2] : 向集合中删除一个或多个成员

  • SUNION key1 [key2] : 求两集合的并集

  • SINTER key1 [key2] : 求两集合的交集

  • SDIFF key1 [key2] : 求两集合的差集

  • SMEMBERS key : 获取集合中所有成员

  • SCARD key : 获取集合中的成员个数

image-20230825170623705.png

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");