非關系型數據庫redis-java基本操作


概述

      redis是一個key-value的nosql數據庫(非關系型數據庫)。支持存儲的value類型包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。為了保證效率,數據都是緩存在內存中。

下載Windows版Redis

Redis官網不支持Windows,可以去Github上下載,可以直接下載zip解壓即可。

指定配置啟動,可以在conf文件中配置密碼等選項。

./redis-server.exe redis.windows.conf

啟動后可以看到端口和PID,當然也可以在后台啟動。

用redis-cli.exe -h 127.0.0.1 -p 6379連接redis服務。

 

redis執行語句

redis的命令:各種命令在這里

包下載

       關於java操作redis的jar包可以使用Jedis,當然下載這個是要翻牆的啦,翻牆的話同志們可以去買各種vpn,也可以自己搭,自己搭建VPN服務器的話看這里,都嫌麻煩可以用lantern.還嫌麻煩的話度娘那也有.

代碼

redis因為是非關系型數據庫,所以沒有表的概念,而且也沒有sql語句.

public class RedisJava {
    Jedis jedis = new Jedis("222.222.221.137",6379); //連接本地的 Redis服務
    public static void main(String[] args) {
        RedisJava redisJava = new RedisJava();
        System.out.println("服務正在運行: "+redisJava.jedis.ping());
        redisJava.save("sk1", "-value1");
        redisJava.update("sk1", "sk111");
        redisJava.findByKey("sk111");
        redisJava.del("sk111");
        redisJava.findAll();
        redisJava.list();
        redisJava.map();
        redisJava.set();
     redisJava.jedis.disconnect(); }
//添加數據(key/value) public void save(String key,String value){ String result = jedis.set(key, value); System.out.println("添加{"+key+":"+value+"},結果為"+result); } //根據Key查詢數據 public String findByKey(String key){ String value = jedis.get(key); System.out.println("get到"+key+"的值為"+value); return value; } //修改key public void update(String oldKey,String newKey){ System.out.println("檢測是否有key:"+oldKey+",結果為:"+jedis.exists(oldKey)); jedis.rename(oldKey, newKey); System.out.println("將key:"+oldKey+"重置為"+newKey); } //根據Key刪除數據 public void del(String key) { Long result = jedis.del(key); System.out.println("刪除的結果為:"+result); } //查詢所有 public void findAll(){ // 獲取keys數據並輸出 Set<String> keys = jedis.keys("*"); Iterator<String> it=keys.iterator(); System.out.println("所有key:"); while(it.hasNext()){ String key = it.next(); System.out.println(key); jedis.del(key); //刪除所有key } } //操作List public void list() { //存儲數據到列表中,一條一條存 jedis.lpush("list", "FireFox"); jedis.lpush("list", "Google"); jedis.lpush("list", "IE"); // 從頭添加,一次添加多條 jedis.lpush("list", "flash", "cisco", "catalin", "Google"); // 從尾添加 jedis.rpush("list", "walley", "jon"); // 返回List長度 System.out.println("list長度為:"+jedis.llen("list")); // 取值 System.out.println("所有list:"); List<String> list = jedis.lrange("list", 0, -1); for (String string : list) { System.out.println(string); } } //操作Map public void map() { jedis.hset("Mcity", "c1", "上海"); //key,map-key,map-value System.out.println("取值:" + jedis.hget("Mcity", "c1")); //根據key,map-key,獲取mapvalue Map<String, String> map = new HashMap<String, String>(); map.put("c1", "徐州"); //相同的map-key會被覆蓋 map.put("c2", "揚州"); map.put("c3", "常州"); jedis.hmset("Mcity", map); //一次取多個map值 List<String> list = jedis.hmget("Mcity", "c1", "c2", "c3"); //一次獲取多個map-value for (String string : list) { System.out.println(string); } System.out.println("list長度:"+jedis.hlen("Mcity")); } //操作Set public void set() { jedis.sadd("city", "揚州", "上海", "南京", "蘇州", "徐州", "常州","北京"); System.out.println("取最上面的值:" + jedis.spop("city")); System.out.println("隨機取值:" + jedis.srandmember("city")); jedis.sadd("city1", "北京", "上海", "河北", "遼林", "雲南", "黑龍江"); System.out.println("交集:" + jedis.sinter("city", "city1")); System.out.println("並集:" + jedis.sunion("city", "city1")); System.out.println("差集:" + jedis.sdiff("city", "city1")); } }

源碼(其實jar包這里也有啦)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM