一、Redis入门
1.Redis简介
2.Redis 下载与安装
3.Redis 数据类型
1、介绍
2、Redis常见5种数据类型
二、Redis 常用命令
1.字符串 string 操作命令
2.哈希 hash 操作命令
3. 列表 list 操作命令
4. 集合 set 操作命令
扫描二维码关注公众号,回复:
15662602 查看本文章
5. 有序集合 sorted set 操作命令
6. 通用命令
三、在 Java 中操作 Redis
1. redis中5种类型java代码
java中操作redis代码:
package com.example.springdataredis_demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.connection.DataType;
import org.springframework.data.redis.core.*;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Set;
@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringDataRedisTest {
@Autowired
private StringRedisTemplate stringRedisTemplate;
/**
* 操作string类型的数据
*/
@Test
public void testString(){
// stringRedisTemplate.opsForValue().set("city","beijing");
// stringRedisTemplate.opsForValue().get("city");
Boolean aBoolean = stringRedisTemplate.opsForValue().setIfAbsent("city22", "东京");
System.out.println(aBoolean);
}
/**
* 操作hash类型的数据(适合存对象
*/
@Test
public void testHash(){
//存值
HashOperations<String, String, String> hashOperations = stringRedisTemplate.opsForHash();
hashOperations.put("001","姓名","小明");
hashOperations.put("001","年龄","20");
hashOperations.put("001","生日","2001-09-05");
//取值
String name = hashOperations.get("001", "姓名");
System.out.println(name);
for (String key : hashOperations.keys("001")) {
System.out.println(key);
}
for (String value : hashOperations.values("001")) {
System.out.println(value);
}
}
/**
* List类型的数据
*/
@Test
public void testList(){
ListOperations<String, String> listOperations = stringRedisTemplate.opsForList();
listOperations.leftPush("003","a");
listOperations.leftPushAll("003","b","c","d");
for (String s : listOperations.range("003", 0, -1)) {
System.out.println(s);
}
Long size = listOperations.size("003");
for (int i=0;i<size;i++){
String s = listOperations.rightPop("003");
System.out.println(s);
}
}
/**
* set类型的数据(特点是不可重复
*/
@Test
public void testSet(){
SetOperations<String, String> setOperations = stringRedisTemplate.opsForSet();
setOperations.add("myset","a","b","c","a");
Set<String> mySet = setOperations.members("myset");
for (String s : mySet) {
System.out.println(s);
}
setOperations.remove("myset","a","b");
mySet = setOperations.members("myset");
for (String s : mySet) {
System.out.println(s);
}
}
/**
* 测试ZSet类型的数据(可以根据分值排序
*/
@Test
public void testZSet(){
//存值
ZSetOperations<String, String> zSetOperations = stringRedisTemplate.opsForZSet();
zSetOperations.add("myzset2","a",10.0);
zSetOperations.add("myzset2","b",11.0);
zSetOperations.add("myzset2","c",12.0);
zSetOperations.add("myzset2","a",13.0);
//取值
for (String myzset : zSetOperations.range("myzset2", 0, -1)) {
System.out.println(myzset);
}
//增长分数
zSetOperations.incrementScore("myzset2","b",10);
//取值
for (String myzset : zSetOperations.range("myzset2", 0, -1)) {
System.out.println(myzset);
}
//删除
zSetOperations.remove("myzset2","a","b");
//取值
for (String myzset : zSetOperations.range("myzset2", 0, -1)) {
System.out.println(myzset);
}
}
/**
* 通用操作
*/
@Test
public void testCommon(){
//获取所有的key
for (String key : stringRedisTemplate.keys("*")) {
System.out.println(key);
}
//判断某个key是否存在
Boolean myset = stringRedisTemplate.hasKey("myset");
System.out.println(myset);
//返回某个key的类型
DataType myset1 = stringRedisTemplate.type("myset");
System.out.println(myset1.name());
//删除某个key
stringRedisTemplate.delete("myset");
}
}