运行jar:
java -jar xxx.jar
查询当前相关进行
ps -ef |grep redis
查询端口号的pid:
netstat -nlp|grep 8080
结果:tcp6 0 0 :::8080 :::* LISTEN 24145/java
结束进程命令:
kill -9 24145
启动redis服务
redis-server redis.conf
启动redis客户端
redis-cli
结束redis服务
shutdown
exit
启动mysql
mysql -uroot -p
启动nginx
/usr/local/nginx/sbin/nginx
结束nginx
/usr/local/nginx/sbin/nginx -s stop
解压 xxx.zip
unzip xxx.zip
解压xxxx.tar.gz
tar -zxvf git_v2.4.0.tar.gz
查看和jdk相关软件
rpm -qa |grep jdk
强制删除软件
rpm -e --nodeps java-1.8.0-openjdk
在java中操作redis
导入redis的场景启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
在yml中配置redis连接设置
spring:
application:
name: springdataredis_demo
#Redis相关配置
redis:
host: 192.168.188.128
port: 6379
#password: 123456
database: 0 #操作的是0号数据库
jedis:
#Redis连接池配置
pool:
max-active: 8 #最大连接数
max-wait: 1ms #连接池最大阻塞等待时间
max-idle: 4 #连接池中的最大空闲连接
min-idle: 0 #连接池中的最小空闲连接
自定义redisTemplate 处理序列换问题
@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;
}
}
使用value为字符串的redis数据
@SpringBootTest
public class Redis_StringTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
public void testString(){
ValueOperations<String, String> ops = redisTemplate.opsForValue();
ops.set("usa","basketball");
//获取key对应的值
String usa = ops.get("usa");
System.out.println("usa : " + usa);
//获取key对应的值,截取值字符串的索引,包左包右
String usa2 = ops.get("usa", 0, 2);
System.out.println("usa2 : " + usa2);
//设置键值对有效期为3s
ops.set("code","12345",3, TimeUnit.SECONDS);
}
}
使用value为list的redis数据
@SpringBootTest
public class Redis_ListTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
public void testList(){
ListOperations<String, String> ops = redisTemplate.opsForList();
//向list中存储数据
ops.leftPushAll("mylist","刘备","关羽","张飞","赵云");
//查看list中的值
List<String> list = ops.range("mylist",0,-1);
list.forEach(System.out::println);
String leftPop = ops.leftPop("mylist");
String rightPop = ops.rightPop("mylist");
System.out.println("leftPop = " + leftPop);//赵云
System.out.println("rightPop = " + rightPop);//刘备
}
}
使用value为哈希结构的redis数据
@SpringBootTest
public class Redis_HashTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
public void testHash() {
HashOperations<String, String, String> ops = redisTemplate.opsForHash();
ops.put("person","name", "jack");
ops.put("person","age", "18");
ops.put("person","hooby", "fly");
//获取key为person的值的name属性的值
String name = ops.get("person", "name");
System.out.println("name = " + name);
//获取属性集合
Set<String> fields = ops.keys("person");
System.out.println(fields);
//获取属性值集合
List<String> values = ops.values("person");
System.out.println(values);
}
}
使用value为set结构的redis数据
@SpringBootTest
public class Redis_SetTest {
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Test
public void testSet() {
SetOperations<String, String> ops = redisTemplate.opsForSet();
Long add = ops.add("3国", "刘备", "关羽", "张飞", "刘备");
System.out.println("add = " + add);
String pop = ops.pop("3国");
System.out.println("pop = " + pop);
Boolean guanyu = ops.isMember("3国", "关羽");
System.out.println("guanyu = " + guanyu);
Set<String> members = ops.members("3国");
System.out.println(members);
}
}