初学 Redis 做个笔记
一、在cmd运行Redis
进入:以管理员身份运行cmd
运行:redis-server.exe
以管理员身份运行一个新的cmd,上一个不要关闭
运行:redis-cli.exe -h 127.0.0.1 -p 6379
注:设置中文字符集则运行:redis-cli --raw
1、String
存
set name "runoob"
取
get name
"runoob"
上述例子中,name为键,runoob为值
一个键最大能存512MB
2、Hash
存
hmset myhash field1 "hello" field2 "world"
取
hget myhash field1 取出了“hello”
hget myhash field2 取出了“world”
上述例子中,创建了 myhash 这个Hash 同时用 hmset 存了两个键值对,用 hget 根据 myhash 和 键 可以将值取出来(存可以一起,取只能一个个)
一个hash可以存2的23次方减一的键值对(约40多亿)
3、List
存
lpush runoob 123
lpush runoon 234 345
取
lrange runoob 0 2
“345” 0
“234” 1
“123” 2
上述例子中,存可以存一到多个,取可以根据存的顺序取出来,,根据给出的下标集合,来取
一个List可以存2的23次方减一个值(约40多亿)
4、Set
存
sadd runoob rabitmq
sadd runoob mongodb
取
smembers runoob
"rabitmq"
"mongodb"
上述例子中, sadd 是存, smembers 是取
set 是无序集合,每个值都只能存一次,再存无效
5、zset
存
zadd runoob 0 redis
zadd runoob 0 mongodb
取
zrangebyscore runoob 0 10
上述例子中, zadd 是存,zrangebyscore 是取,根据给出的下标集合,来取
zset是有序集合,每个元素都会关联一个double类型的分数,来为集合进行排序,double值可以从复
二、在java中实现使用Redis
1、导入
commons-pool2-2.4.2.jar
jedis-2.9.0.jar
下载链接:https://pan.baidu.com/s/1qik6cLVJ_d-37LSgA0BJEQ
2、实现
下面的代码中,实现了String、Hash、List、Set、zset的存取,还有一个删除例子
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class MainRedis {
private static JedisPool pool;
private static Jedis jedis;
public static void main(String[] argn){
// 初始化Redis连接池
pool = new JedisPool(new JedisPoolConfig(), "127.0.0.1");
// 从连接池中获取一个连接
jedis = pool.getResource();
//存取 String
jedis.set("name", "runoob");
System.out.println(jedis.get("name"));
System.out.println("");
//存取Hash
Map<String, String> map = new HashMap<>();
map.put("fineld", "one");
map.put("this", "tokin");
map.put("like", "baby");
map.put("yes", "oh no");
jedis.hmset("myhash", map);
List<String> list = new ArrayList<String>();
list.add("fineld");
list.add("this");
list.add("like");
list.add("yes");
list.add("no");//hash查询没有的返回空
for(int i=0;i<list.size();i++){
System.out.println(jedis.hget("myhash", list.get(i)));
}
System.out.println("");
//存取List
List<String> list2 = new ArrayList<>();
list2.add("花花世界");
list2.add("Illusory world");
list2.add("Illusions are true");
list2.add("Eternal");
list2.add("Come on");
for(int i=0;i<list2.size();i++){
jedis.lpush("worlds", list2.get(i));
}
System.out.println(jedis.lrange("worlds", 0, 10));
System.out.println("");
//存取Set
List<String> list3 = new ArrayList<>();
list3.add("存取Set");
list3.add("试试same");
list3.add("same");//从输出可以看出,不能重复存
list3.add("same");
list3.add("nice");
for(int i=0;i<list3.size();i++){
jedis.sadd("same", list3.get(i));
}
System.out.println(jedis.smembers("same"));
System.out.println("");
//存取zset(sorted set)
Map<String,Double> map2 = new HashMap<>();
map2.put("第一", 0.0);
map2.put("第二", 0.0);
map2.put("第三", 0.0);
map2.put("第四", 0.0);
map2.put("第五", 0.0);
for(int i=0;i<map2.size();i++){
jedis.zadd("ranking", map2);
//jedis.del("ranking");//清空数据
}
System.out.println(jedis.zrangeByScore("ranking", 0, 10));
}
}