Redis
1概念: redis是非关性数据库
1.1数据之间没有关联关系
1.2数据存储在内存中
redis是走缓存
2.redis存储:key,value,key是字符串类型的,value有五种类型
value类型:
1.字符串:String
127.0.0.1:6379> set name zhansgan
OK
127.0.0.1:6379> get name
"zhansgan"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379>
存储:set key value
获取:get key
删除:del key
2.哈希类型 hash:map格式
127.0.0.1:6379> set name zhansgan
OK
127.0.0.1:6379> get name
"zhansgan"
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> hset myset name zhangsan
(integer) 1
127.0.0.1:6379> hset myset age 23
(integer) 1
127.0.0.1:6379> getall myset
(error) ERR unknown command 'getall'
127.0.0.1:6379> hgetall myset
1) "name"
2) "zhangsan"
3) "age"
4) "23"
127.0.0.1:6379> get myset name
(error) ERR wrong number of arguments for 'get' command
127.0.0.1:6379> hget myset name
"zhangsan"
127.0.0.1:6379> del myset
(integer) 1
127.0.0.1:6379>
存储:hset key key1 value
查询:hget key key1
全部查询 :hgetall key
删除:del key key1
3.列表类型 list:linkedlist类型
127.0.0.1:6379> lpush mylist a
(integer) 1
127.0.0.1:6379> lpush mylist b
(integer) 2
127.0.0.1:6379> rpush mylist c
(integer) 3
127.0.0.1:6379> range mylist 0 -1
(error) ERR unknown command 'range'
127.0.0.1:6379> lrange mylist 0 -1
1) "b"
2) "a"
3) "c"
127.0.0.1:6379> lpop mylist
"b"
127.0.0.1:6379> rpop mylist
"c"
127.0.0.1:6379> lrange mylist 0 -1
添加:lpush key value 从左边开始添加
添加 rpush key value 从右边开始添加
查询 :lrange key 0-1-
删: lpop key :从左开始删
rpop key :从右开始删
4.set 不允许重复的
127.0.0.1:6379> sadd myset a
(integer) 1
127.0.0.1:6379> sadd myset b
(integer) 1
127.0.0.1:6379> sadd myset c
(integer) 1
127.0.0.1:6379> semembers myset
(error) ERR unknown command 'semembers'
127.0.0.1:6379> smembers myset
1) "a"
2) "c"
3) "b"
127.0.0.1:6379> smembers myset c
(error) ERR wrong number of arguments for 'smembers' command
127.0.0.1:6379> srem myset c
(integer) 1
127.0.0.1:6379> smembers myset c
(error) ERR wrong number of arguments for 'smembers' command
127.0.0.1:6379> smembers myset
1) "a"
2) "b"
127.0.0.1:6379>
添加 sadd key value
取 : smembers key ;获取所以的值
删 srem key vlaue
5.sortdset :有序 不允许重复
存储:zadd key score value ;
sore :是数子
取:zrange key start end withscores ;获取 全部值和分数
删 zrem key value
127.0.0.1:6379> zddd mysort 20 zhnsgan
(error) ERR unknown command 'zddd'
127.0.0.1:6379> zadd mysort 20 zhnsgan
(integer) 1
127.0.0.1:6379> zadd mysort 50 lisi
(integer) 1
127.0.0.1:6379> zadd mysort 80 wangwu
(integer) 1
127.0.0.1:6379> zrange key 0 -1 withscores
(empty list or set)
127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "zhnsgan"
2) "20"
3) "lisi"
4) "50"
5) "wangwu"
6) "80"
127.0.0.1:6379> zrem mysort zhangsan
(integer) 0
127.0.0.1:6379> zrem mysort lisi
(integer) 1
127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "zhnsgan"
2) "20"
3) "wangwu"
4) "80"
通用命令
1.1 命令
keys * : 查询全部的键
type key : 查询对应的value的类型
127.0.0.1:6379> keys *
1) "list"
2) "username"
3) "user"
4) "myset"
5) "mysort"
127.0.0.1:6379> type list
list
127.0.0.1:6379>
String的java操作
@Test
public void test (){
Jedis jedis=new Jedis("127.0.0.1",6379);
jedis.setex("name",50,"zhansan"); //指定过期时间
jedis.close();
}
2.哈希类型 hash:map格式
public void test1 (){
Jedis jedis=new Jedis(); //默认地址是本机 端口默认6379
jedis.hset("mylist","name","zhangsan");
jedis.hset("mylist","age","28");
String hget = jedis.hget("mylist", "name");
System.out.println(hget);
Map<String, String> mylist = jedis.hgetAll("mylist");
Set<String> strings = mylist.keySet();
for (String s : strings) {
System.out.println(s+":"+mylist.get(s));
}
jedis.close();
}
3.list
@Test
public void test2 (){
Jedis jedis=new Jedis();
jedis.rpush("mys","b");
jedis.lpush("mys","a","b");
List<String> mylist = jedis.lrange("mys", 0, -1);
System.out.println(mylist.toString());
String mys = jedis.lpop("mys");
System.out.println(mys);
jedis.close();
}
4.set
public void test3 (){
Jedis jedis=new Jedis();
jedis.sadd("mst","name","zhansgan");
jedis.sadd("mst","age","25");
jedis.srem("mst","age");
Set<String> mst = jedis.smembers("mst");
System.out.println(mst);
jedis.close();
}
5.sort
public void test4 (){
Jedis jedis=new Jedis();
jedis.zadd("str",20,"zhnasgn");
jedis.zadd("str",80,"lisi");
jedis.zrem("str","lisi");
Set<String> str = jedis.zrange("str", 0, -1);
System.out.println(str);
jedis.close();
}
6.jedispool利用连接池来回去对象
public void test7(){
JedisPool jedisPool=new JedisPool(); //链接池来获取链接对象
Jedis resource = jedisPool.getResource();
resource.set("name","zhangsan");
String name = resource.get("name");
System.out.println(name);
resource.close();
}