Redis入门(含java操作命令)

目录

数据类型

操作命令(命令行中)

字符串(String)

哈希(Hash)

列表(List)

集合(Set)

有序集合(sorted set/zset)

通用命令

在Java中操作Redis

操作命令(Java中)

字符串(String)

哈希(Hash)

列表(List)

集合(Set)

有序集合(sorted set/zset)

通用命令


具体请到redis官网查看:https://www.redis.net.cn/tutorial/3510.html

Redis是一个基于内存的key-value结构数据库

数据类型

字符串(String):普通字符串,Redis中最简单的数据类型

哈希(Hash):也叫散列,类似于java中的HashMap

列表(List):按照插入顺序排序,可以有重复元素,类似于java中的LinkedList

集合(Set):无序集合,没有重复元素,类似于java中的HashSet

有序集合(sorted set/zset):集合中每个元素关联一个分数,根据分数升序排序,没有重复元素

操作命令(命令行中)

字符串(String)

set key value 设置指定key的值 (set name jack)

get key 获取指定key的值 (get name)

setex key seconds value 设置指定key的值,并将key的过期时间设为seconds秒 (setex sex 30 男)

setnx key value 只有在key不存在时设置key的值 (setnx age 18)

哈希(Hash)

hset key field value 将哈希表key中的字段field的值设置为value (hset set1 name 雷伊)

hget key field 获取存储在哈希表中指定字段的值 (hget set1 name)

hdel key field 删除存储在哈希表中的指定字段 (hdel set1 name)

hkeys key 获取哈希表中所有字段 (hkeys set1)

hvals key 获取哈希表中所有值 (hvals set1)

列表(List)

lpush key value1 [value2] 将一个或多个值插入到列表头部 (lpush list1 a b c)

lrange key start stop 获取列表指定范围内的 (lrange list1 0 -1)

rpop key 移除并获取列表最后一个元素 (rpop list1)

llen key 获取列表长度 (llen list1)

集合(Set)

sadd key member1 [member2] 向集合中添加一个或多个成员 (sadd set2 a b x y)

smembers key 返回集合中的所有成员 (smembers set2)

scard key 获取集合的成员数 (scard set2)

sinter key1 [key2] 返回给定集合的交集 (sinter set2 set3)

sunion key1 [key2] 返回给定集合的并集 (sunion set2 set3)

srem key member1 [member2] 删除集合中一个或多个成员 (srem set2 a x)

有序集合(sorted set/zset)

zadd key score1 member1 [score2 member2] 向有序集合添加一个或多个成员

(zadd zset1 10 a 10.5 b)

zrange key start stop 通过索引区间返回有序集合中指定区间内的成员

(zrange zset1 0 -1)

zincrby key increment member 有序集合中对指定成员的分数加上增量 increment

(zincrby zset1 10 a)

zrem key member1 [member2] 移除有序集合中的一个或多个成员

(zrem zset1 a)

通用命令

keys pattern 查找所有符合给定模式pattern的key (keys *) (keys set*)

exists key 检查给定key是否存在 (exists zset1)

type key 返回key所储存的值的类型 (type zset1)

del key key存在时删除key (del zset1)

在Java中操作Redis

Spring Data Redis 使用方式:

1.导入Spring Data Redis的maven坐标

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.配置Redis数据源

spring:
  data:
    redis:
      host: localhost
      port: 6379
      password: 252748377

3.编写配置类,创建RedisTemplate对象

package com.rumen.common;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfiguration {
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
        RedisTemplate redisTemplate = new RedisTemplate();
        //设置redis的连接工厂对象
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //设置redis key的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

4.通过RedisTemplate对象操作Redis

操作命令(Java中)

字符串(String)

public void testString(){
    //set get setex setnx
    ValueOperations valueOperations = redisTemplate.opsForValue();
    valueOperations.set("city","上海");//set
    String city = (String) valueOperations.get("city");//get
    System.out.println(city);
    valueOperations.set("name","小明",3, TimeUnit.MINUTES);//setex
    valueOperations.setIfAbsent("age","2");//setnx
}

哈希(Hash)

public void testHash(){
    //hset hget hdel hkeys hvals
    HashOperations hashOperations = redisTemplate.opsForHash();
    hashOperations.put("hash1","name","tom");//hset
    hashOperations.put("hash1","age","18");//hset
    String name = (String) hashOperations.get("hash1", "name");//hget
    System.out.println(name);
    Set keys = hashOperations.keys("hash1");//hkeys
    System.out.println(keys);
    List values = hashOperations.values("hash1");//hvals
    System.out.println(values);
    hashOperations.delete("hash1","name");//hdel
}

列表(List)

public void testList(){
    //lpush lrange lpop llen
    ListOperations listOperations = redisTemplate.opsForList();
    listOperations.leftPushAll("list","a","b","c");//lpush
    listOperations.leftPush("list","x");//lpush
    List list = listOperations.range("list", 0, -1);//lrange
    System.out.println(list);
    Object rightPop = listOperations.rightPop("list");//lpop
    System.out.println(rightPop);
    Long size = listOperations.size("list");//llen
    System.out.println(size);
}

集合(Set)

public void testSet(){
    //sadd smember scard sinter sunion srem
    SetOperations setOperations = redisTemplate.opsForSet();
    setOperations.add("set1","a","b","c","d");//sadd
    setOperations.add("set2","a","b","x","y");//sadd
    Set members = setOperations.members("set1");//smember
    System.out.println(members);
    Long size = setOperations.size("set1");//scard
    System.out.println(size);
    Set intersect = setOperations.intersect("set1", "set2");//sinter
    System.out.println(intersect);
    Set union = setOperations.union("set1", "set2");//sunion
    System.out.println(union);
    setOperations.remove("set1","a","b");//srem
}

有序集合(sorted set/zset)

public void testZSet(){
    //zadd zrange zincrby zrem
    ZSetOperations zSetOperations = redisTemplate.opsForZSet();
    zSetOperations.add("zset1","a",10);//zadd
    zSetOperations.add("zset1","b",9.5);//zadd
    zSetOperations.add("zset1","c",10.5);//zadd
    Set zset1 = zSetOperations.range("zset1", 0, -1);//zrange
    System.out.println(zset1);
    zSetOperations.incrementScore("zset1","c",10);//zincrby
    zSetOperations.remove("zset1","a");//zrem
}

通用命令

public void testCommon(){
    //keys exists type del
    Set keys = redisTemplate.keys("*");//keys
    System.out.println(keys);
    Boolean name = redisTemplate.hasKey("name");//exists
    System.out.println(name);
    Boolean set1 = redisTemplate.hasKey("set1");//exists
    System.out.println(set1);
    for (Object key : keys) {
        DataType type = redisTemplate.type(key);//type
        System.out.println(type.name());
    }
    redisTemplate.delete("zset1");//del
}
  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值