1. Jedis介绍与快速入门
通过java来操作redis使用jedis
搭建jedis环境
编写代码
程序执行报错
原因:
- redis服务器是否开启
- linux的防火墙是否关闭
- 在redis.conf配置文件中 bind 127.0.0.1 代表的是外部 不可以访问redis
通过以上操作,错误信息不一样了
原因:是我们没有设置密码
我们需要在redis.conf文件中设置密码
在命令行下连接redis
2. string类型常见操作
//string操作
public class JedisDemo2 {
Jedis jedis;
@Before
public void createJedis() {
jedis = new Jedis("192.168.19.128");
// 设置密码
jedis.auth("admin");
}
// 演示 set get
@Test
public void test1() {
jedis.set("username", "tom");
String value = jedis.get("username");
System.out.println(value);
}
//演示mset mget
@Test
public void test2(){
jedis.mset("password","123","age","20");
List<String> values = jedis.mget("username","password","age");
System.out.println(values);
}
//演示 append setrange getrange
@Test
public void test3(){
//jedis.append("username"," is boy");
//jedis.setrange("username", 7,"girl");
System.out.println(jedis.get("username"));
System.out.println(jedis.getrange("username", 7, -1));
}
}
3. list类型常见操作
//list操作
public class JedisDemo3 {
Jedis jedis;
@Before
public void createJedis() {
jedis = new Jedis("192.168.19.128");
// 设置密码
jedis.auth("admin");
}
// 演示lpush lrange
@Test
public void test1() {
jedis.lpush("names", "tom", "james", "张三", "李四");
List<String> names = jedis.lrange("names", 0, -1);
System.out.println(names);
}
// lset
@Test
public void test2() {
// jedis.lset("names", 1, "王五");
// List<String> names = jedis.lrange("names", 0, -1);
// System.out.println(names);
String value = jedis.lindex("names", 1);
System.out.println(value);
}
// linsert
@Test
public void test3() {
jedis.linsert("names", LIST_POSITION.BEFORE, "james", "fox");
List<String> names = jedis.lrange("names", 0, -1);
System.out.println(names);
}
// lrem
@Test
public void test4(){
jedis.lrem("names", 1, "tom");
List<String> names = jedis.lrange("names", 0, -1);
System.out.println(names);
}
}
4. hash类型常见操作
//hash操作
public class JedisDemo4 {
Jedis jedis;
@Before
public void createJedis() {
jedis = new Jedis("192.168.19.128");
// 设置密码
jedis.auth("admin");
}
// 演示hset hget
@Test
public void test1() {
jedis.hset("user", "username", "tom");
String value = jedis.hget("user", "username");
System.out.println(value);
}
// 演示hmset hmget
@Test
public void test2() {
Map<String, String> hash = new HashMap<String, String>();
hash.put("password", "123");
hash.put("sex", "male");
jedis.hmset("user", hash);
List<String> values = jedis.hmget("user", "username", "password", "sex");
System.out.println(values);
}
//演示 hgetall hkeys kvals
@Test
public void test3(){
Map<String, String> map = jedis.hgetAll("user");
for(String key:map.keySet()){
System.out.println(key+" "+map.get(key));
}
Set<String> keys = jedis.hkeys("user");
System.out.println(keys);
List<String> values = jedis.hvals("user");
System.out.println(values);
}
// 演示hdel
@Test
public void test4(){
jedis.hdel("user", "username","password");
Map<String, String> map = jedis.hgetAll("user");
for(String key:map.keySet()){
System.out.println(key+" "+map.get(key));
}
}
}
5. set类型常见操作
//set操作
public class JedisDemo5 {
Jedis jedis;
@Before
public void createJedis() {
jedis = new Jedis("192.168.19.128");
// 设置密码
jedis.auth("admin");
}
//演示sadd smembers
@Test
public void test1(){
jedis.sadd("language1","java","c++","ruby","python");
Set<String> smembers = jedis.smembers("language1");
System.out.println(smembers);
}
//演示srem
@Test
public void test2(){
jedis.srem("language1", "java");
Set<String> smembers = jedis.smembers("language1");
System.out.println(smembers);
}
//差集 sdiff
@Test
public void test3(){
jedis.sadd("language1","java","c++","ruby","python");
jedis.sadd("language2","ios","c++","c#","android");
Set<String> sdiff = jedis.sdiff("language1","language2");
System.out.println(sdiff);
}
//交集
@Test
public void test4(){
jedis.sadd("language1","java","c++","ruby","python");
jedis.sadd("language2","ios","c++","c#","android");
Set<String> sinter = jedis.sinter("language1","language2");
System.out.println(sinter);
}
//并集
@Test
public void test5(){
jedis.sadd("language1","java","c++","ruby","python");
jedis.sadd("language2","ios","c++","c#","android");
Set<String> sunion = jedis.sunion("language1","language2");
System.out.println(sunion);
}
}
6. sortedSet类型常见操作
//sortedset操作
public class JedisDemo6 {
Jedis jedis;
@Before
public void createJedis() {
jedis = new Jedis("192.168.19.128");
// 设置密码
jedis.auth("admin");
}
// 演示zadd zrange zrangeByScore
@Test
public void test1() {
Map<String, Double> sm = new HashMap<String, Double>();
sm.put("张三", 70.0);
sm.put("李四", 80.0);
sm.put("王五", 90.0);
sm.put("赵六", 60.0);
jedis.zadd("zkey", sm);
Set<String> set = jedis.zrange("zkey", 0, -1);
System.out.println(set);
// 根据分数获取
Set<String> set1 = jedis.zrangeByScore("zkey", 70.0, 90.0);
System.out.println(set1);
}
// 获取分数元素 zrangeWithScores
@Test
public void test2() {
Map<String, Double> sm = new HashMap<String, Double>();
sm.put("张三", 70.0);
sm.put("李四", 80.0);
sm.put("王五", 90.0);
sm.put("赵六", 60.0);
jedis.zadd("zkey", sm);
Set<Tuple> zws = jedis.zrangeWithScores("zkey", 0, -1);
for (Tuple t : zws) {
System.out.println(t.getScore() + " " + t.getElement());
}
}
// zrank
@Test
public void test3() {
Map<String, Double> sm = new HashMap<String, Double>();
sm.put("张三", 70.0);
sm.put("李四", 80.0);
sm.put("王五", 90.0);
sm.put("赵六", 60.0);
jedis.zadd("zkey", sm);
Long num = jedis.zrank("zkey", "赵六");
System.out.println(num);
}
// zscore
@Test
public void test4() {
Map<String, Double> sm = new HashMap<String, Double>();
sm.put("张三", 70.0);
sm.put("李四", 80.0);
sm.put("王五", 90.0);
sm.put("赵六", 60.0);
jedis.zadd("zkey", sm);
Double zscore = jedis.zscore("zkey", "张三");
System.out.println(zscore);
}
// zrem
@Test
public void test5() {
Map<String, Double> sm = new HashMap<String, Double>();
sm.put("张三", 70.0);
sm.put("李四", 80.0);
sm.put("王五", 90.0);
sm.put("赵六", 60.0);
jedis.zadd("zkey", sm);
jedis.zrem("zkey", "李四");
Set<Tuple> zws = jedis.zrangeWithScores("zkey", 0, -1);
for (Tuple t : zws) {
System.out.println(t.getScore() + " " + t.getElement());
}
}
}
7. key的常见操作
//key的通用操作
public class JedisDemo7 {
Jedis jedis;
@Before
public void createJedis() {
jedis = new Jedis("192.168.19.128");
// 设置密码
jedis.auth("admin");
}
// keys patten
@Test
public void test1(){
Set<String> keys = jedis.keys("*");
System.out.println(keys);
}
// del key
@Test
public void test2(){
Long del = jedis.del("user");
System.out.println(del);
}
//关于key时间设置
@Test
public void test3(){
//jedis.expire("username", 200); //设置生命周期为200秒
jedis.persist("username");
Long ttl = jedis.ttl("username"); //获取生命周期值
System.out.println(ttl);
}
}