Redis入门

1.Redis常用命令

1.字符串操作命令

> localhost connected!
> set name wangwei
OK
> get name
wangwei
> get abc
null
> setex code 10 1234
OK
> get code
1234
> get code
null
> setnx key1 nihao
1
> get key1
nihao
> set key1 nihaoa
OK
> get key1
nihaoa
> setnx key1 wangweihao
0

2.哈希操作命令

> localhost connected!
> hset 100 name wangwei
1
> hest 100 age 22
ERR unknown command 'hest'
> hget 100
ERR wrong number of arguments for 'hget' command
> hget 100 name
wangwei
> hdel 100
ERR wrong number of arguments for 'hdel' command
> hdel 100 name
1
> hset 100 name wangwei
1
> hkey 100
ERR unknown command 'hkey'
> hkeys 100
name
> hset 100 age 22
1
> hkeys 100
name
age
> hvals 100
wangwei
22

3.列表操作命令

> lpush mylist a b c
3
> lpush mylist d
4
> 
ERR unknown command ''
> lrange mylist 0 -1
d
c
b
a
> rpop
ERR wrong number of arguments for 'rpop' command
> rpop mylist
a
> llen mylist
3

4.集合操作命令

> sadd set1 a b c d
4
> sadd set1 a
0
> smembers set1
d
a
c
b
> scard set1
4
> sadd set2 a b x y
4
> sinter set1 set2
a
b
> sunion set1 set2
b
x
d
y
a
c
> srem set1 a
1

 5.有序集合操作命令

> zadd zset1 10.0 a 10.5 b
2
> zadd zset1 10.2 c
1
> zrange zset1 0 -1 withscores
a
10
c
10.199999999999999
b
10.5
> zincrby zset1 5.0 a
15
> 
ERR unknown command ''
> zrange zset1 0 -1 withscores
c
10.199999999999999
b
10.5
a
15
> zrem zset1 b
1

6.通用命令

> keys *
set1
zset1
key1
mylist
name
100
set2
> keys set*
set1
set2
> exists name
1
> exists abc
0
> type name
string
> del name
1
> del set1 100 set2
3

 2.在Java中操作Redis

1.Redis的Java客户端

2.Spring Data Redis

 配置类的编写:

@Configuration
@Slf4j
public class RedisConfiguration {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory){
        log.info("开始创建RedisTemplate");
        RedisTemplate redisTemplate = new RedisTemplate();
        // 设置redis连接工厂对象
        redisTemplate.setConnectionFactory(connectionFactory);
        // 设置key的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

测试类:

在Java中操作Redis数据库

package com.sky.test;


import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.*;

import java.util.List;
import java.util.concurrent.TimeUnit;

@SpringBootTest
public class SpringDataRedisTest {

    @Autowired
    private RedisTemplate<String, Object> redisTemplate;

    @Test
    public void test() {
        System.out.println(redisTemplate);
        ValueOperations<String, Object> valueOperations = redisTemplate.opsForValue();
        HashOperations<String, Object, Object> HashOperations = redisTemplate.opsForHash();
        ListOperations<String, Object> ListOperations = redisTemplate.opsForList();
        SetOperations<String, Object> SetOperations = redisTemplate.opsForSet();
        ZSetOperations<String, Object> ZSetOperations = redisTemplate.opsForZSet();
    }

    @Test
    public void testString() {
        // set get setex setnx
        redisTemplate.opsForValue().set("name", "wangwei");
        String name = (String) redisTemplate.opsForValue().get("name");
        System.out.println(name);
        redisTemplate.opsForValue().set("name2", "sb", 10, TimeUnit.SECONDS);
        redisTemplate.opsForValue().setIfAbsent("name3", "yxm");
        // setnx 同一个key 不可再变
        redisTemplate.opsForValue().setIfAbsent("name3", "ww");
    }

    @Test
    public void testHash(){
        // hset hget hdel hkeys hvals
        HashOperations<String, Object, Object> hashOperations = redisTemplate.opsForHash();
        hashOperations.put("hash1", "name", "wangdawei");
        hashOperations.put("hash1", "age", "18");
        String name = (String) hashOperations.get("hash1", "name");
        System.out.println(name);
        List<Object> hash1 = hashOperations.values("hash1");
        System.out.println(hash1);
        hashOperations.delete("hash1", "age");
    }
}

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值