Redis查漏补缺

3 篇文章 0 订阅
2 篇文章 0 订阅

一:配置类

原因:
因为redis的存贮是二进制的,所以拿出的数据仍然是二进制的。为了方便阅读,我们写了一个redis的配置类。

@Configuration
public class RedisConfiguration {

    @Bean
    public RedisTemplate<String, Serializable> redisTemplate
        (RedisConnectionFactory redisConnectionFactory){
        RedisTemplate<String,Serializable> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        redisTemplate.setKeySerializer(RedisSerializer.string());
        redisTemplate.setValueSerializer(RedisSerializer.json());
        redisTemplate.setHashKeySerializer(RedisSerializer.string());
        redisTemplate.setHashValueSerializer(RedisSerializer.json());
        return redisTemplate;
    }
}

调用 因为配置类的名字是redisTempla调用的也是它(其实我也不清楚,但就是这么用的,后期有时间在研究2023.11.15)

ValueOperations<String, Serializable> operations = redisTemplate.opsForValue();
        operations.set("username7","girl");
        redisTemplate.expire("username7", times,TimeUnit.SECONDS);

一些小工具命令

keys * ##查看所有的key
TTL key  ##查看key 的过期时间

List的数据管理

指令框的一些常见命令

LPUSH(lpush) key value [value...] 将一个或多个值插入到列表key的表头,从左边开始插入
RPUSH(rpush) .....  从右边插入
LPOP key ## 移除左边的第一个元素
RPOP key
LRANGE key start stop  查看数据 若是从0 -1 可以查看所有key列表中的数据

在编程中使用list集合的一些数据,往redis里面存入list集合的数据的代码

ListOperations<String,Serializable> operations = redisTemplate.opsForList();
 List<User> userList = new ArrayList<>();
        for (int i=1;i<=10000;i++){
            User user = new User();
            user.setUsername("测试者"+i);
            user.setPhone("130"+i+i+i+i+"9936");
            user.setAge(i);
            user.setAddress("30"+i);
            userList.add(user);
        }
        ListOperations<String,Serializable> operations = redisTemplate.opsForList();
        for (User user : userList){
            operations.rightPush("user-list",user);
        }

Set数据操作

常用命令

sadd key member []   ##向集合添加多个数据
scard key            ##获取集合的大小
smembers key		##获取集合中所有的成员变量
sismember key member  ## 判断成员是否在集合里面
srem key member []    ##从集合中移除一个或多个成员
spop key [] 		  ##随机移除集合中的一个或多个成员
srandmember key []    ##随机获取集合中的一个或多个成员,但不移除它们
sunion key []         ##获取多个集合的并集
sinter key []         ##获取多个集合的交集

存储set集合的数据使用的类

SetOperations<String, Serializable> opsForSet = redisTemplate.opsForSet();

获取set集合中的数据

SetOperations<String, Serializable> opsForSet = redisTemplate.opsForSet();
        Set members = opsForSet.members("string-set");
        Set<String> members1 = members;
        for (String s : members1){
            System.out.println(s);
        }

注意Set members = opsForSet.members(“string-set”);这里的Set并没有<> 因为可以省略。

Hash数据操作

常用命令

HSET key field value  # 设置哈希字段的字符串值 
						HSET user:1000 username "johnsmith"
HGET key field #获取哈希字段的值  
						HGET user:1000 username
HMSET key field1 value1 field2 value2 ...#设置多个哈希字段
                        HMSET user:1000 username "johnsmith" email "john@example.com"
HMGET key field1 field2 ...    #获取多个哈希字段值
                    	HMGET user:1000 username email
HDEL key field1 field2 ...     #删除一个或者多个哈希字段
                    	HDEL user:1000 email
HGETALL key                  #获取所有字段值
                    	HGETALL user:1000

hash使用的类

HashOperations<String, Object, Object> operations = redisTemplate.opsForHash();
        User user = new User();
        user.setPhone("13014019936");
        user.setAddress("hchchc");
        user.setUsername("hc");
        user.setAge(23);

        Map<String,Object> map = BeanUtil.beanToMap(user);
        HashOperations<String, Object, Object> operations = redisTemplate.opsForHash();
        operations.putAll("loginInfo2",map);
 HashOperations<String,Object,Object> operations = redisTemplate.opsForHash();
        Map<Object, Object> loginInfo2 = operations.entries("loginInfo2");
        System.out.println(loginInfo2);
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值