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