redis
jedis
参考网上的一些教程,用于自己的学习记录,也为大家提供一些参考
慢慢来会很快,不要急,越是急躁越学不会
测试
1.导入对应的依赖
<!--导入jedis-->
<dependencies>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.2.0</version>
</dependency>
<!-- fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.74</version>
</dependency>
</dependencies>
2.编码测试
-
连接数据库
-
操作命令
-
断开连接
测试:
package com.xing;
import redis.clients.jedis.Jedis;
public class TestPing {
public static void main(String[] args) {
//1.new Jedis 对象即可
Jedis jedis = new Jedis ("127.0.0.1",6379);
//jedis 所有的命令就是我们之前学习的所有的命令!所有之前的指令学习很重要!
System.out.println (jedis.ping ());
}
}
输出:pong
常用的API
String
List
Set
Hash
Zset
package com.xing;
import redis.clients.jedis.Jedis;
import java.util.Set;
public class TestKey {
public static void main(String[] args) {
//1.new Jedis 对象即可
Jedis jedis = new Jedis ("127.0.0.1",6379);
System.out.println ("清空数据:"+jedis.flushDB ());
System.out.println ("判断某个键是否存在:"+jedis.exists ("username"));
System.out.println ("新增<'username','xingfuhao'>的键值对:"+jedis.set ("username","xingfuhao"));
System.out.println ("新增<'password','password'>的键值对:"+jedis.set ("password","password"));
System.out.println ("系统中所有的键如下:");
Set<String> keys=jedis.keys ("*");
System.out.println (keys);
System.out.println ("删除键password:"+jedis.del ("password"));
System.out.println ("判断键password是否存在:"+jedis.exists ("password"));
System.out.println ("查看键username所存储值的类型"+jedis.type ("username"));
System.out.println ("随机返回key空间的一个:"+jedis.randomKey ());
System.out.println ("重命名key:"+jedis.rename ("username","name"));
System.out.println ("去除改后的name:"+jedis.get ("name"));
System.out.println ("按照索引查询:"+jedis.select (0));
System.out.println ("删除当前选择数据库中的所有key:"+jedis.flushDB ());
System.out.println ("返回当前数据库中key的数目:"+jedis.dbSize ());
System.out.println ("删除所有数据库中的所有key:"+jedis.flushAll ());
}
}
jedis在Java中事务的执行
package com.xing;
import com.alibaba.fastjson.JSONObject;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
public class TestTX {
public static void main(String[] args) {
//1.new Jedis 对象即可
Jedis jedis = new Jedis ("127.0.0.1",6379);
jedis.flushDB ();
JSONObject jsonObject = new JSONObject ();
jsonObject.put ("hello","world");
jsonObject.put ("name","xingfuhao");
//开启事务
Transaction multi = jedis.multi ();
String result = jsonObject.toString ();
// jedis.watch (result);
try {
multi.set ("user1",result);
multi.set ("user2",result);
// int i=1/0; //代码抛出异常事务,执行失败
multi.exec (); //执行事务!
} catch (Exception e) {
multi.discard (); //放弃事务
e.printStackTrace ();
} finally {
System.out.println (jedis.get ("user1"));
System.out.println (jedis.get ("user2"));
jedis.close ();
}
}
}
xingfuhao@xingfuhaodeMacBook-Air-1999 ~ % redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> ps -ef|grep redis
(error) ERR unknown command `ps`, with args beginning with: `-ef|grep`, `redis`,
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name xing
OK
127.0.0.1:6379> set age 22
OK
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists name1
(integer) 0
127.0.0.1:6379> expire name 5
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> expire age 15
(integer) 1
127.0.0.1:6379> ttl age
(integer) 10
127.0.0.1:6379> ttl age
(integer) 6
127.0.0.1:6379> set name xfh
OK
127.0.0.1:6379> set age 22
OK
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> type name
string
127.0.0.1:6379> append name hello
(integer) 8
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> get name
"xfhhello"
127.0.0.1:6379> STRLEN name
(integer) 8
127.0.0.1:6379> append name ",hello"
(integer) 14
127.0.0.1:6379> strlen name
(integer) 14
127.0.0.1:6379> get name
"xfhhello,hello"
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> INCR views
(integer) 1
127.0.0.1:6379> INCR views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> INCRBY views 10
(integer) 12
127.0.0.1:6379> DECRBY views 5
(integer) 7
127.0.0.1:6379> get name
"xfhhello,hello"
127.0.0.1:6379> GETRANGE name 0 5
"xfhhel"
127.0.0.1:6379> setex key3 20 "HELLO"
OK
127.0.0.1:6379> TTL KEY3
(integer) -2
127.0.0.1:6379> ttl key3
(integer) 1
127.0.0.1:6379> setex key3 20 "HELLO"
OK
127.0.0.1:6379> ttl key3
(integer) 16
127.0.0.1:6379> setnx mykey "redis"
(integer) 1
127.0.0.1:6379> keys *
1) "mykey"
2) "views"
3) "age"
4) "name"
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "mykey"
2) "age"
3) "views"
4) "k3"
5) "k2"
6) "name"
7) "k1"
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> mget
(error) ERR wrong number of arguments for 'mget' command
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 22
OK
127.0.0.1:6379> mset user
(error) ERR wrong number of arguments for 'mset' command
127.0.0.1:6379> mset user:1
(error) ERR wrong number of arguments for 'mset' command
127.0.0.1:6379> mset user:1:name user:1:age
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "user:1:age"
2) "22"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 22
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "22"
127.0.0.1:6379> getset db redis
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb
"redis"
127.0.0.1:6379> get db
"mongodb"
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> LRANGE 0 -1
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> loop list
(error) ERR unknown command `loop`, with args beginning with: `list`,
127.0.0.1:6379> Loop list
(error) ERR unknown command `Loop`, with args beginning with: `list`,
127.0.0.1:6379> lpop list
"three"
127.0.0.1:6379> rpop list
"one"
127.0.0.1:6379> LRANGE list 0 -1
1) "two"
127.0.0.1:6379> lpush list one
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "one"
2) "two"
127.0.0.1:6379> lindex list 1
"two"
127.0.0.1:6379> lindex list 0
"one"
127.0.0.1:6379> lindex list 2
(nil)
127.0.0.1:6379> LLEN list
(integer) 2
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> lpush list 1
(integer) 1
127.0.0.1:6379> lpush list 2
(integer) 2
127.0.0.1:6379> lpush list 3
(integer) 3
127.0.0.1:6379> lpush list 4
(integer) 4
127.0.0.1:6379> LLEN list
(integer) 4
127.0.0.1:6379> lpush list 4
(integer) 5
127.0.0.1:6379> LRANGE list 0 -1
1) "4"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> LREM list 1 1
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "4"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> LREM list 2 4
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "3"
2) "2"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> clear
127.0.0.1:6379> Rpush mylist "hello"
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> Rpush mylist "hello1"
(integer) 2
127.0.0.1:6379> Rpush mylist "hello2"
(integer) 3
127.0.0.1:6379> Rpush mylist "hello3"
(integer) 4
127.0.0.1:6379> Rpush mylist "hello4"
(integer) 5
127.0.0.1:6379> Rpush mylist "hello5"
(integer) 6
127.0.0.1:6379> Rpush mylist "hello6"
(integer) 7
127.0.0.1:6379> Rpush mylist "hello7"
(integer) 8
127.0.0.1:6379> ltrim mulist 1 3
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "hello1"
3) "hello2"
4) "hello3"
5) "hello4"
6) "hello5"
7) "hello6"
8) "hello7"
127.0.0.1:6379> ltrim mylist 1 3
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello1"
2) "hello2"
3) "hello3"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> clear
127.0.0.1:6379> Keys *
(empty array)
127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "hello1"
(integer) 2
127.0.0.1:6379> rpush mylist "hello2"
(integer) 3
127.0.0.1:6379> rpush mylist "hello3"
(integer) 4
127.0.0.1:6379> rpush mylist "hello4"
(integer) 5
127.0.0.1:6379> RPOPLPUSH mylist myotherlist
"hello4"
127.0.0.1:6379> RPOPLPUSH mylist myotherlis
"hello3"
127.0.0.1:6379> Exists list
(integer) 0
127.0.0.1:6379> Exists mylist
(integer) 1
127.0.0.1:6379> lpush list value1
(integer) 1
127.0.0.1:6379> lrange list 0 0
1) "value1"
127.0.0.1:6379> lset list 0 ityem
OK
127.0.0.1:6379> lrange list 0 0
1) "ityem"
127.0.0.1:6379> lset list 1 sna
(error) ERR index out of range
127.0.0.1:6379>
Last login: Wed Oct 14 09:56:34 on ttys000
xingfuhao@xingfuhaodeMacBook-Air-1999 ~ % redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> ps -ef|grep redis
(error) ERR unknown command `ps`, with args beginning with: `-ef|grep`, `redis`,
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name xing
OK
127.0.0.1:6379> set age 22
OK
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists name1
(integer) 0
127.0.0.1:6379> expire name 5
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> expire age 15
(integer) 1
127.0.0.1:6379> ttl age
(integer) 10
127.0.0.1:6379> ttl age
(integer) 6
127.0.0.1:6379> set name xfh
OK
127.0.0.1:6379> set age 22
OK
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> type name
string
127.0.0.1:6379> append name hello
(integer) 8
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> get name
"xfhhello"
127.0.0.1:6379> STRLEN name
(integer) 8
127.0.0.1:6379> append name ",hello"
(integer) 14
127.0.0.1:6379> strlen name
(integer) 14
127.0.0.1:6379> get name
"xfhhello,hello"
127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> INCR views
(integer) 1
127.0.0.1:6379> INCR views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> INCRBY views 10
(integer) 12
127.0.0.1:6379> DECRBY views 5
(integer) 7
127.0.0.1:6379> get name
"xfhhello,hello"
127.0.0.1:6379> GETRANGE name 0 5
"xfhhel"
127.0.0.1:6379> setex key3 20 "HELLO"
OK
127.0.0.1:6379> TTL KEY3
(integer) -2
127.0.0.1:6379> ttl key3
(integer) 1
127.0.0.1:6379> setex key3 20 "HELLO"
OK
127.0.0.1:6379> ttl key3
(integer) 16
127.0.0.1:6379> setnx mykey "redis"
(integer) 1
127.0.0.1:6379> keys *
1) "mykey"
2) "views"
3) "age"
4) "name"
127.0.0.1:6379> ttl key3
(integer) -2
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "mykey"
2) "age"
3) "views"
4) "k3"
5) "k2"
6) "name"
7) "k1"
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> mget
(error) ERR wrong number of arguments for 'mget' command
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k1 v1 k4 v4
(integer) 0
127.0.0.1:6379> get k4
(nil)
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 22
OK
127.0.0.1:6379> mset user
(error) ERR wrong number of arguments for 'mset' command
127.0.0.1:6379> mset user:1
(error) ERR wrong number of arguments for 'mset' command
127.0.0.1:6379> mset user:1:name user:1:age
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "user:1:age"
2) "22"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> mset user:1:name zhangsan user:1:age 22
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "zhangsan"
2) "22"
127.0.0.1:6379> getset db redis
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> getset db mongodb
"redis"
127.0.0.1:6379> get db
"mongodb"
127.0.0.1:6379> flushall
OK
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> LRANGE 0 -1
(error) ERR wrong number of arguments for 'lrange' command
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> loop list
(error) ERR unknown command `loop`, with args beginning with: `list`,
127.0.0.1:6379> Loop list
(error) ERR unknown command `Loop`, with args beginning with: `list`,
127.0.0.1:6379> lpop list
"three"
127.0.0.1:6379> rpop list
"one"
127.0.0.1:6379> LRANGE list 0 -1
1) "two"
127.0.0.1:6379> lpush list one
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "one"
2) "two"
127.0.0.1:6379> lindex list 1
"two"
127.0.0.1:6379> lindex list 0
"one"
127.0.0.1:6379> lindex list 2
(nil)
127.0.0.1:6379> LLEN list
(integer) 2
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> lpush list 1
(integer) 1
127.0.0.1:6379> lpush list 2
(integer) 2
127.0.0.1:6379> lpush list 3
(integer) 3
127.0.0.1:6379> lpush list 4
(integer) 4
127.0.0.1:6379> LLEN list
(integer) 4
127.0.0.1:6379> lpush list 4
(integer) 5
127.0.0.1:6379> LRANGE list 0 -1
1) "4"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> LREM list 1 1
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "4"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> LREM list 2 4
(integer) 2
127.0.0.1:6379> LRANGE list 0 -1
1) "3"
2) "2"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> clear
127.0.0.1:6379> Rpush mylist "hello"
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> Rpush mylist "hello1"
(integer) 2
127.0.0.1:6379> Rpush mylist "hello2"
(integer) 3
127.0.0.1:6379> Rpush mylist "hello3"
(integer) 4
127.0.0.1:6379> Rpush mylist "hello4"
(integer) 5
127.0.0.1:6379> Rpush mylist "hello5"
(integer) 6
127.0.0.1:6379> Rpush mylist "hello6"
(integer) 7
127.0.0.1:6379> Rpush mylist "hello7"
(integer) 8
127.0.0.1:6379> ltrim mulist 1 3
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "hello1"
3) "hello2"
4) "hello3"
5) "hello4"
6) "hello5"
7) "hello6"
8) "hello7"
127.0.0.1:6379> ltrim mylist 1 3
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello1"
2) "hello2"
3) "hello3"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> clear
127.0.0.1:6379> Keys *
(empty array)
127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "hello1"
(integer) 2
127.0.0.1:6379> rpush mylist "hello2"
(integer) 3
127.0.0.1:6379> rpush mylist "hello3"
(integer) 4
127.0.0.1:6379> rpush mylist "hello4"
(integer) 5
127.0.0.1:6379> RPOPLPUSH mylist myotherlist
"hello4"
127.0.0.1:6379> RPOPLPUSH mylist myotherlis
"hello3"
127.0.0.1:6379> Exists list
(integer) 0
127.0.0.1:6379> Exists mylist
(integer) 1
127.0.0.1:6379> lpush list value1
(integer) 1
127.0.0.1:6379> lrange list 0 0
1) "value1"
127.0.0.1:6379> lset list 0 ityem
OK
127.0.0.1:6379> lrange list 0 0
1) "ityem"
127.0.0.1:6379> lset list 1 sna
(error) ERR index out of range
127.0.0.1:6379> clear
127.0.0.1:6379> sadd myset "hello"
(integer) 1
127.0.0.1:6379> sadd myset "kuangshen"
(integer) 1
127.0.0.1:6379> sadd myset "lovekuangshen"
(integer) 1
127.0.0.1:6379> smembers myset
1) "kuangshen"
2) "lovekuangshen"
3) "hello"
127.0.0.1:6379>