当前位置:   article > 正文

Redis笔记(安装配置+常用命令+Java操作+redis集群Redis-Cluster+可视化工具)_redisinsight 可视化工具连接集群

redisinsight 可视化工具连接集群

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进入redis安装目录下,修改配置文件,进行后台启动服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

修改配置文件,设置密码。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改如下配置文件
然后可以通过window客户端进行对Linux服务端进行连接
在这里插入图片描述

====================================================

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

=========================================================

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

public class JedisTest{
	@Test
	public void testRedis(){
		//1.获取连接
		Jedis jedis = new Jedis("localhost",6379);
		//2.执行具体操作
		jedis.set("username","jordan");
		String value = jedis.get("username");
		jedis.hset("myhash","addr","beijing");
		String hValue = jedis.hget("myhash","addr");
		Set<String> keys = jedis.keys("*");
		for(String key:keys){
			System.out.println(key);
		}
		jedis.del("username");
		//3.关闭连接
		jedis.close();
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

在这里插入图片描述
在这里插入图片描述
SpringBoot项目中

spring:
	application:
		name: apringdataredis_demo
	redis:
		host: host
		port: 6379
		password: 123456
		database: 0
		jedis:
			pool:
			 max-active: 8 #最大连接数
			 max-wait: 1ms #连接池中最大阻塞等待时间
			 max-idle: 4 # 连接池中的最大空闲连接   
			 min-idle: 0 # 连接池中的最小空闲连接
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

该配置类用以将改变序列化方式
在这里插入图片描述

@Configuration
public class RedisConfig extends CachingConfigurerSupport{
	@Bean
	public RedisTemplate<Object,Object> redisTemplate(RedisConnectionFactory connectionFactory){
		RedisTemplate<Object,Object> redisTemplate = new RedisTemplate<>();
		//默认的key序列化器为:JdkSerializationRedisSerializer
		//修改如下的序列化
		redisTemplate.setKeySerializer(new StringRedisSerializer());
		redisTemplate.setHashKeySerializer(new StringRedisSerializer());
		redisTemplate.setConnectionFactory(connectionFactory);
		return redisTemplate;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
@SpringBootTest
@RunWith(SpringRunner.class)
public class SpringDataRedisTest{
	@Autowired
	private RedisTemplate redisTemplate;

	//操作String类型
	@Test
	public void testString(){
		ValueOperations valueOperations = redisTemplate.opsForValue();//简单的k-v操作
		//key和value存放的时候会使用到序列化器
		//key需要更改默认的序列化器,而value不需修改,直接使用默认的序列化器即可
		valueOperations.set("city","beijing");
		Object value = rdisTemplate.opsForValue().get("city");

		//指定设置的超时时间
		redisTemplate.opsForValue().set("key1","value1",10L,TimeUnit.SECONDS);

		//如果不存在就设置,没有操作返回false
		Boolean b = redisTemplate.opsForValue().setIfAbsent("city123","nanjing");
	}

	//操作Hash类型
	@Test
	public void testHash(){
		HashOperations hashOperations = redisTemplate.opsForHash();
		//存值
		hashOperations.put("002","name","jordan");
		hashOperations.put("002","age","23");

		//取值
		String age = (String)hashOperations.get("002","name");
		//获取hash结构所有的字段
		Set Keys = hashOperations.keys("002");
		for(Object key : keys){
			System.put.println(key);
		}
		//获取hash结构中所有的值
		List values = hashOperations.values("002");
		for(Object value : values){
			System.out.println(value);
		}
	}

	//操作List类型数据
	@Test
	public testList(){
		ListOperations listOperations = redisTemplate.opsForList();
		listOperations.leftPush("myLists","a");
		listOperations.leftPushAll("myList","b","c","d");
		
		//取值
		List<String> myList = listOperations.range("myList",0,-1);
		for(String value:myList){
			System.out.println(myList);
		}
		//获取列表长度
		Long size = listOperations.size("myList");
		int lSize = size.intValue();
		for(int i = 0;i<lSize;i++){
			//出队列
			Object element = listOperations.rightPop("myList")
			System.out.println(element);
		}
		
	}

	//操作Set类型数据
	@Test
	public void testSet(){
		SetOperations setOperations = redisTemplate.opsForSet();
		//存值
		setOperations.add("myset","a","b","c","a");
		//取值
		Set myset = setOperations.members("myset");
		for(String o :mySet){
			System.out.println(o);
		}
		//删除成员
		setOperations.remove("myset"); 
	}

	//操作ZSet类型数据
	@Test
	public void testZset(){
		ZSetOperations zSetOperations = redisTemplate.opsForZSet();
		//存值
		zSetOperations.add("myZset","a",10.0);
		zSetOperations.add("myZset","b",11.0);
		zSetOperations.add("myZset","c",12.0);
		zSetOperations.add("myZset","d",13.0);
		//取值
		set<String> myZset = zSetOperations.range("myZset",0,-1);
		for(String s:myZset){
			System.out.println(s)
		}
		//修改分数
		zSetOperations.incrementScore("myZset","b",20.0);
		//删除成员
		zSetOperations.remove("myZset","a","b");
	}

	//通用操作
	@Test
	public void testCommon(){
		//获取redis中左右的key
		Set<String> keys = redisTemplate.keys("*");
		for(String key:keys){
			System.out.println(key)
		}
		//判断某个key是否存在
		Boolean itcast = redisTemplate.hasKey("itcast");
		System.out.prinltn(itcast);
		//删除指定key
		redisTemplate.delete("myZset");
		//获取指定key对应的value数据类型
		DataType myset = redistemplate.type("myset");
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119

======================================================================================

Redis-Cluster集群
官方推荐6个实力,3个主节点,3个从节点
高可用:一旦有主节点发生故障,可以选举出对一个的从节点称为新的主节点继续对外提供服务。
在这里插入图片描述

槽位:
在这里插入图片描述
使用redis建立集群

  1. 进入其中一个节点redis后台docker exec -it redis-7001 bash
    在这里插入图片描述

  2. 创建三个主节点,指定副本,自动分配各槽以及主节点对一个从节点
    在这里插入图片描述
    在这里插入图片描述

  3. 进行操作(集群模式需要加参数-c)
    在这里插入图片描述
    内部会根据key进行重定向对应的节点槽
    在这里插入图片描述
    同样对主节点的操作也会对应同步到从节点
    在这里插入图片描述

  4. 模拟主节点宕机

查看集群状况(包括集群节点数量)
在这里插入图片描述
查看节点状况
在这里插入图片描述

docker stop redis-7001
从节点7006取代宕机的7001,如果7001重新上线,那么7001成为7006的从节点
在这里插入图片描述

Redis可视化工具

iredis工具通过命令行格式化json。
官网地址:https://iredis.io/
在这里插入图片描述

可视化工具

桌面版这次评测的软件如下:

  • redis desktop manager 官网:https://redisdesktop.com/ ,以前免费,现在收费。
  • medis 官网:http://getmedis.com/,免费,缺点是不支持key的命名空间展示,不支持redis 5.0的stream数据类型,命令行比较单一,不支持自动匹配和提示。支持的value的展现方式也只有3种。
  • AnotherRedisDesktopManager官网:https://github.com/qishibo/AnotherRedisDesktopManager,不支持stream数据类型。命令行模式也比较单一。value展示支持的类型也只有3种。
  • fastoredis 官网:https://fastoredis.com/,收费,还要注册账号
  • redis-plus 官网:https://gitee.com/MaxBill/RedisPlus,免费桌面客户端软件
  • red 官网:在苹果Mac用户可以去app store里面搜,app store下载的redis可视化工具

Web版本评测的软件如下:

  • redis-insight,官网https://redislabs.com/redisinsight/ 全面性和分析监控方面,确实是其他redis可视化工具难以企及的

IDE插件版本,这里只评测IntelliJ IDEA的插件,eclipse的就不作介绍了

  • Iedis2 IntelliJ IDEA的插件,在IDEA的plugin市场里就可以搜到,但是为收费插件
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/785834
推荐阅读
相关标签
  

闽ICP备14008679号