Rumah pangkalan data tutorial mysql Java使用Redis初探

Java使用Redis初探

Jun 07, 2016 pm 04:10 PM
java redis Tidak guna Penerokaan awal konsep Berkaitan

Redis的相关概念不做介绍了,大家也可以先了解下Memcached,然后比较下二者的区别,就会有个整体的印象。 服务器端通常选择Linux , Redis对于linux是官方支持的,使用资料很多,需要下载相关服务器端程序 ,然后解压安装。因为能力和条件有限,我只简单介绍下

Redis的相关概念不做介绍了,大家也可以先了解下Memcached,然后比较下二者的区别,就会有个整体的印象。

服务器端通常选择Linux , Redis对于linux是官方支持的,使用资料很多,需要下载相关服务器端程序 ,然后解压安装。因为能力和条件有限,我只简单介绍下windows上如何安装和使用,有兴趣的可以娱乐一下。

服务器端程序下载地址:https://github.com/ServiceStack/redis-windows.git

如果不好操作的话到这来:http://download.csdn.net/detail/u013283727/8212831

下载完后使用cmd进入下载文件的目录中,尝试以下操作:

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\>cd redis64-latest

C:\redis64-latest>redis-server redis.windows.conf --maxmemory 200m
                _._
           _.-``__ ''-._
      _.-``    `.  `_.  ''-._           Redis 2.8.17 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._
 (    '      ,       .-`  | `,    )     Running in stand alone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 4552
  `-._    `-._  `-./  _.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |           http://redis.io
  `-._    `-._`-.__.-'_.-'    _.-'
 |`-._`-._    `-.__.-'    _.-'_.-'|
 |    `-._`-._        _.-'_.-'    |
  `-._    `-._`-.__.-'_.-'    _.-'
      `-._    `-.__.-'    _.-'
          `-._        _.-'
              `-.__.-'

[4552] 01 Dec 13:38:53.147 # Server started, Redis version 2.8.17
[4552] 01 Dec 13:38:53.147 * DB loaded from disk: 0.000 seconds
[4552] 01 Dec 13:38:53.147 * The server is now ready to accept connections on po
rt 6379
Salin selepas log masuk


客户端使用java程序来连接,在这里介绍两种常用的方法

(Jar包直接找maven要:http://www.mvnrepository.com 一搜就出来了)

1.Redisson

/**
 * @author fcs
 * Redisson Example
 */
public class RedissonTest {
	public static void main(String[] args) {
		//1.初始化
		Config config = new Config();
		config.setConnectionPoolSize(10);
		config.addAddress("127.0.0.1:6379");
		Redisson redisson = Redisson.create(config);
		System.out.println("redis连接接成功。。。。。");
		
		//2.测试concurrentMap,put时候就会同步到redis中
		ConcurrentMap<String, String> map = redisson.getMap("firstMap");
		map.put("changshengfeng", "男");
		map.put("yongtaoliu", "男");
		map.put("qiaozhu", "女");
		
		ConcurrentMap resultMap = redisson.getMap("firstMap");
		System.out.println("resultMap == "+resultMap.keySet());
		//关闭连接
		redisson.shutdown();
	}
}
Salin selepas log masuk

2.Jedis

/**
 * @author fcs
 * test about jedis
 * Dec 1, 2014
 */
public class JedisTest {
	private static Jedis jedis;
	
	@Before
	public void setup(){
		jedis = new Jedis("127.0.0.1", 6379);
		System.out.println("Redis服务器已连接....");
//		jedis.auth("admin");   //权限验证
	}
	
	/**
	 * redis 存储字符串
	 */
	@Test
	public void testString(){
		//添加数据
		jedis.set("name", "fcs");
		System.out.println(jedis.get("name"));//获取结果
		
		jedis.append("name", "is handsome");//拼接
		
		jedis.del("name");//删除某个键
		System.out.println(jedis.get("name"));
		
		jedis.mset("name","changsheng","age","22","qq","646653132");//设置多个键值对
		jedis.incr("age");//加1操作   在投票中可能用的上
		System.out.println(jedis.get("name")+"--"+jedis.get("age")+"--"+jedis.get("qq"));
	}
	
	/**
	 * 操作List
	 */
	@Test
	public void testList(){
		jedis.del("java framework");
		System.out.println(jedis.lrange("java framework", 0, -1));
		//先向key java framework存放三条数据
		jedis.lpush("java framework", "spring");
		jedis.lpush("java framework", "struts");
		jedis.lpush("java framework", "hibernate");
		//再取出所有数据jedis.lrange是按范围取出  第一个是key  第二个是其实位置  第三个是结束位置
		System.out.println(jedis.lrange("java framework", 0, -1));
		
		jedis.del("java framework");
		jedis.rpush("java framework", "spring");
		jedis.rpush("java framework", "struts");
		jedis.rpush("java framework", "hibernate");
		//再取出所有数据jedis.lrange是按范围取出  第一个是key  第二个是其实位置  第三个是结束位置
		System.out.println(jedis.lrange("java framework", 0, -1));
		
	}
	
	/**
	 * 操作Set
	 */
	@Test
	public void testSet(){
		jedis.sadd("haha", "why");
		jedis.sadd("haha", "you");
		jedis.sadd("haha", "so");
		jedis.sadd("haha", "diao");
		jedis.sadd("haha", "?");
		//移除
		jedis.srem("haha", "?");
		System.out.println("判断?是不是haha集合的元素:"+jedis.sismember("haha", "?"));
		System.out.println("获取所有加入的value:"+jedis.smembers("haha"));
		System.out.println("返回给定集合名的一个随机的value:"+jedis.srandmember("haha"));
		System.out.println("返回集合的元素个数:"+jedis.scard("haha"));
		
	}
	
	/**
	 * redis 操作map
	 */
	@Test
	public void testmap(){
		Map<String,String> map = new HashMap<String, String>();
		map.put("name", "小露");
		map.put("sex", "男");
		map.put("email", "haha@fcs.com");
		jedis.hmset("user", map);//相当于给map再取一个名字
		
		List<String> rsmap = jedis.hmget("user", "name","sex");//后面是一个可变参数列表  去某个map中的一些key代表的值
		System.out.println(rsmap);
		
		//删除map中的某个键值
		jedis.hdel("user", "email");
		System.out.println("删除后----email"+jedis.hmget("user", "email"));
		System.out.println("是否存在key为user的记录:"+jedis.exists("user"));
		System.out.println("key为user的map中存放的值的个数:"+jedis.hlen("user"));
		System.out.println("返回map对象中所有的key:"+jedis.hkeys("user"));
		System.out.println("返回map对象中所有的value:"+jedis.hvals("user"));
		
		//使用迭代器
		Iterator<String> iter = jedis.hkeys("user").iterator();
		System.out.println("***************使用迭代器***************");
		while(iter.hasNext()){
			String key = iter.next();//每次向后越过一个对象
			System.out.println(key+":"+jedis.hmget("user", key));//迭代key   根据key再取值value
		}

	}
	
	/**
	 * 这里在前面执行完之后直接再去拿值   试试这些进驻内存的数据是否还在
	 * 可以把服务器端关掉再重启    再直接运行这个方法看看
	 * 如果还有数据就说明该数据库自动完成了持久化     它有默认的持久化机制
	 */
	@Test
	public void testNoSet(){
		Iterator<String> iter = jedis.hkeys("user").iterator();
		System.out.println("***************使用迭代器***************");
		while(iter.hasNext()){
			String key = iter.next();//每次向后越过一个对象
			System.out.println(key+":"+jedis.hmget("user", key));//迭代key   根据key再取值value
		}
	}

//	@AfterClass   测试整个类时可以用    会关闭服务器端程序
//	public static void close(){
//		jedis.shutdown();//不能用@After   不然每次执行完一个方法都会关闭服务器
//		System.out.println("连接已关闭.....");
//	}
	
}
Salin selepas log masuk


这时候可以看到cmd中有一些日志记录:(这就是它默认的持久化机制,可以在redis.windows.conf配置文件中查看)

[3972] 01 Dec 13:59:04.073 * 1 changes in 900 seconds. Saving...
[3972] 01 Dec 13:59:04.229 # fork operation complete
[3972] 01 Dec 13:59:04.229 * Background saving terminated with success
[3972] 01 Dec 14:20:05.127 * 1 changes in 900 seconds. Saving...
[3972] 01 Dec 14:20:05.267 # fork operation complete
[3972] 01 Dec 14:20:05.267 * Background saving terminated with success
[3972] 01 Dec 14:35:06.074 * 1 changes in 900 seconds. Saving...
[3972] 01 Dec 14:35:06.204 # fork operation complete
[3972] 01 Dec 14:35:06.224 * Background saving terminated with success
Salin selepas log masuk

哎,先到这吧。。。。




Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Oct 11, 2024 pm 06:30 PM

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Bagaimana untuk menjalankan aplikasi boot musim bunga pertama anda di Spring Tool Suite? Feb 07, 2025 pm 12:11 PM

Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo

Program Java untuk memasukkan elemen di bahagian bawah timbunan Program Java untuk memasukkan elemen di bahagian bawah timbunan Feb 07, 2025 am 11:59 AM

Stack adalah struktur data yang mengikuti prinsip LIFO (terakhir, pertama keluar). Dalam erti kata lain, elemen terakhir yang kita tambahkan pada timbunan adalah yang pertama dikeluarkan. Apabila kita menambah (atau menolak) unsur ke timbunan, mereka diletakkan di atas; iaitu di atas semua

Dari negara mana pertukaran Nexo? Dari negara mana pertukaran Nexo? Mar 05, 2025 pm 05:09 PM

Nexo Exchange: Platform Pinjaman Cryptocurrency Swiss Analisis mendalam Nexo adalah platform yang menyediakan perkhidmatan pinjaman cryptocurrency, menyokong gadai janji dan pinjaman lebih daripada 40 aset crypto, mata wang fiat dan stablecoins. Ia menguasai pasaran Eropah dan Amerika dan komited untuk meningkatkan kecekapan, keselamatan dan pematuhan platform. Ramai pelabur ingin tahu di mana pertukaran Nexo didaftarkan, dan jawapannya ialah: Switzerland. Nexo ditubuhkan pada tahun 2018 oleh syarikat Swiss Fintech Credissimo. Nexo Exchange Lokasi dan Peraturan Geografi: Nexo beribu pejabat di Zug, Switzerland, rantau yang mesra cryptocurrency yang terkenal. Platform ini secara aktif bekerjasama dengan pengawasan pelbagai kerajaan dan telah berada di Rangkaian Penguatkuasaan Undang -undang Jenayah Kewangan AS (FINCEN) dan Kewangan Kanada

Analisis Data dengan Java: Panduan Pemula untuk Memproses Maklumat Analisis Data dengan Java: Panduan Pemula untuk Memproses Maklumat Oct 11, 2024 pm 01:42 PM

Java ialah bahasa yang berkuasa untuk analisis data, menyediakan infrastruktur untuk memproses set data yang besar dan melaksanakan analisis yang kompleks, termasuk: Struktur data: Pengumpulan, seperti tatasusunan dan senarai, digunakan untuk menyimpan dan menyusun data. Strim IO: Objek yang digunakan untuk membaca dan menulis fail. Rangka Kerja Koleksi Java: Pustaka koleksi yang berkuasa untuk mengurus dan memanipulasi struktur data. Contoh praktikal analisis data menggunakan Java termasuk menganalisis fail teks di mana data disimpan dalam koleksi dan diproses melalui struktur data Java dan rangka kerja koleksi.

See all articles