赞
踩
进入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(); } }
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 # 连接池中的最小空闲连接
该配置类用以将改变序列化方式
@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;
}
}
@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"); } }
======================================================================================
Redis-Cluster集群
官方推荐6个实力,3个主节点,3个从节点
高可用:一旦有主节点发生故障,可以选举出对一个的从节点称为新的主节点继续对外提供服务。
槽位:
使用redis建立集群
进入其中一个节点redis后台docker exec -it redis-7001 bash
创建三个主节点,指定副本,自动分配各槽以及主节点对一个从节点
进行操作(集群模式需要加参数-c)
内部会根据key进行重定向对应的节点槽
同样对主节点的操作也会对应同步到从节点
模拟主节点宕机
查看集群状况(包括集群节点数量)
查看节点状况
docker stop redis-7001
从节点7006取代宕机的7001,如果7001重新上线,那么7001成为7006的从节点
iredis工具通过命令行格式化json。
官网地址:https://iredis.io/
可视化工具
桌面版这次评测的软件如下:
Web版本评测的软件如下:
IDE插件版本,这里只评测IntelliJ IDEA的插件,eclipse的就不作介绍了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。