Jadual Kandungan
1.下载与编译
2.redis安装与配置
3.C/C++访问redis
4.Java访问redis
5.性能测试
C++测试代码
Java测试代码
Rumah pangkalan data tutorial mysql 十分简单的redis使用说明及性能测试

十分简单的redis使用说明及性能测试

Jun 07, 2016 pm 03:28 PM
redis Arahan penggunaan keluar prestasi ujian Mudah

转载请注明出处:http://blog.csdn.net/jmppok/article/details/18085181 redis相比很多人都知道,是一个内存式的key-value数据库,存取速度极快,使用非常简单,支持多种语言。本文对其使用进行一个简要说明,并进行简单测试。 1.下载与编译 可以从redis官

转载请注明出处:http://blog.csdn.net/jmppok/article/details/18085181

redis相比很多人都知道,是一个内存式的key-value数据库,存取速度极快,使用非常简单,支持多种语言。本文对其使用进行一个简要说明,并进行简单测试。

1.下载与编译

可以从redis官网下载最新的源码包:http://www.redis.io/

编译十分简单make既可。

2.redis安装与配置

实际上并不需要安装。redis编译后会在src目录下生成redis-server,它是一个可执行文件,即启动redis服务。不过它需要一个配置文件。配置文件写法网上很多了,这里直接给出一个示例:

 

daemonize yes
pidfile /tmp/redis/var/redis.pid
port 6379
timeout 300
loglevel debug
logfile /tmp/redis/var/redis.log
databases 16
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /tmp/redis/var/
appendonly no
appendfsync always
#glueoutputbuf yes
#shareobjects no
#shareobjectspoolsize 1024
Salin selepas log masuk
将其保存为redis.conf
然后直接运行./redis-server redis.conf就可以启动redis服务了,是不是很方便呢?

3.C/C++访问redis

在redis源码目录下有一个deps目录,下面有一个hiredis目录。redis编译时会自动编译该目录生成libhiredis.a,通过引用hiredis.h 和 libhiredis.a就可以访问redis了。具体步骤如下:

1)创建一个redisContext

2)通过redisContext执行命令

3)从返回redisReply中获取所需数据

代码如下:

redisContext * c = redisConnect((char *)"192.168.150.135",6379); const char * pData = "this is a test"; 
Salin selepas log masuk
redisReply *reply1 = (redisReply *)redisCommand(c,"SET 100 %s",pData); 
Salin selepas log masuk
freeReplyObject(reply1);
Salin selepas log masuk
redisReply *reply2 = (redisReply *)redisCommand(c,"GET 100");
Salin selepas log masuk
printf("%s\n",reply2->str);
freeReplyObject(reply2);
是不是非常简单呢? 
Salin selepas log masuk

不过需要注意的是,redis接受的数据是字符串,对于二进制数据,可以通过base64编码来解决。具体可参看我的另一篇文章。

4.Java访问redis

redis可以支持多种语言,当然也可以支持Java。

首先需要下载redis的java包。jedis.jar。这里提供一个下载地址:redis的Java客户端jedis

使用如下:

Jedis jedis = new Jedis("192.168.150.135");
jedis.set("100","this is a test");
String data = jedis.get("100");
Salin selepas log masuk

5.性能测试

测试方法:向redis写一个1M的数据,分别写10次,读10次,计算其耗时。分C++和Java两个版本进行测试。

C++测试代码

#include <stdio.h>
#include "hiredis.h"
#include <string.h>
#include <time.h>

int main(int argc, char **argv)
{
	printf("CLOCKS_PER_SEC:%d\n",CLOCKS_PER_SEC);
	redisContext *c;
    redisReply *reply;

    c = redisConnect((char *)"one-60",6379);

	char * pData;
    
    reply = (redisReply *)redisCommand(c,"GET 0");
	int size = strlen(reply->str);
	pData = new char[size+1];
	strcpy(pData,reply->str);
    freeReplyObject(reply);
	
	clock_t start, finish;
	start = clock();
	
	for(int i=0;i<10; i++)
	{
		reply = (redisReply *)redisCommand(c,"GET %d",i);
		freeReplyObject(reply);
	}
	
	finish = clock();
	double duration = (double)(finish - start) / CLOCKS_PER_SEC*1000;
	printf("GET Time used:%f ms.\n",duration);
	
	
	start = clock();
	
	for(int i=0;i<10; i++)
	{
		reply = (redisReply *)redisCommand(c,"SET %d %s",i,pData);
		freeReplyObject(reply);
	}
	
	finish = clock();
	duration = (double)(finish - start) / CLOCKS_PER_SEC*1000;
	printf("SET Time used:%f ms.\n",duration);
				
	delete []pData;
	redisFree(c);
}
Salin selepas log masuk
测试结果
CLOCKS_PER_SEC:1000000
GET Time used:190.000000 ms.
SET Time used:70.000000 ms. 
Salin selepas log masuk

Java测试代码

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Date;

import redis.clients.jedis.Jedis;


public class JedisTest {
	public static void main(String[] args)
	{
		Jedis jedis = new Jedis("10.100.211.232");
		
		String f = "/tmp/e2.txt.backup";
		
		try
		{
			File file = new File(f);
			BufferedReader reader = new BufferedReader(new FileReader(file));
			String data = reader.readLine();
			reader.close();
			
			Date start = new Date();
			for(int i=0; i<10; i++)
			{
				jedis.set(i+"", data);
			}
			Date end = new Date();
			System.out.println("Set used(ms):"+(end.getTime()-start.getTime()));
			
			start = new Date();
			for(int i=0; i<10; i++)
			{
				String v = jedis.get(i+"");
			}
			end = new Date();
			System.out.println("Get used(ms):"+(end.getTime()-start.getTime()));
			
		}catch (Exception e)
		{
			e.printStackTrace();
		}
		jedis.disconnect();
	}
}
Salin selepas log masuk

测试结果
Set used(ms):1212
Get used(ms):1437
Salin selepas log masuk

6.总结

redis效率还是非常高的,读写1M数据的数据,耗时都在10ms左右。

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

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 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)

Topik panas

Tutorial Java
1669
14
Tutorial PHP
1273
29
Tutorial C#
1256
24
Cara Membina Mod Kluster Redis Cara Membina Mod Kluster Redis Apr 10, 2025 pm 10:15 PM

Mod Redis cluster menyebarkan contoh Redis ke pelbagai pelayan melalui sharding, meningkatkan skalabilitas dan ketersediaan. Langkah -langkah pembinaan adalah seperti berikut: Buat contoh Redis ganjil dengan pelabuhan yang berbeza; Buat 3 contoh sentinel, memantau contoh redis dan failover; Konfigurasi fail konfigurasi sentinel, tambahkan pemantauan maklumat contoh dan tetapan failover; Konfigurasi fail konfigurasi contoh Redis, aktifkan mod kluster dan tentukan laluan fail maklumat kluster; Buat fail nodes.conf, yang mengandungi maklumat setiap contoh Redis; Mulakan kluster, laksanakan perintah Buat untuk membuat kluster dan tentukan bilangan replika; Log masuk ke kluster untuk melaksanakan perintah maklumat kluster untuk mengesahkan status kluster; buat

Cara membersihkan data redis Cara membersihkan data redis Apr 10, 2025 pm 10:06 PM

Cara Mengosongkan Data Redis: Gunakan perintah Flushall untuk membersihkan semua nilai utama. Gunakan perintah flushdb untuk membersihkan nilai utama pangkalan data yang dipilih sekarang. Gunakan Pilih untuk menukar pangkalan data, dan kemudian gunakan FlushDB untuk membersihkan pelbagai pangkalan data. Gunakan perintah DEL untuk memadam kunci tertentu. Gunakan alat REDIS-CLI untuk membersihkan data.

Cara Membaca Gilir Redis Cara Membaca Gilir Redis Apr 10, 2025 pm 10:12 PM

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Cara Mengkonfigurasi Masa Pelaksanaan Skrip Lua di Centos Redis Cara Mengkonfigurasi Masa Pelaksanaan Skrip Lua di Centos Redis Apr 14, 2025 pm 02:12 PM

Pada sistem CentOS, anda boleh mengehadkan masa pelaksanaan skrip LUA dengan mengubah fail konfigurasi REDIS atau menggunakan arahan REDIS untuk mengelakkan skrip jahat daripada memakan terlalu banyak sumber. Kaedah 1: Ubah suai fail konfigurasi Redis dan cari fail konfigurasi Redis: Fail konfigurasi Redis biasanya terletak di /etc/redis/redis.conf. Edit Fail Konfigurasi: Buka fail konfigurasi menggunakan editor teks (seperti Vi atau nano): sudovi/etc/redis/redis.conf Tetapkan had masa pelaksanaan skrip lua: Tambah atau ubah suai baris berikut dalam fail konfigurasi untuk menetapkan masa pelaksanaan maksimum skrip lua (unit: milidor)

Cara menggunakan baris arahan redis Cara menggunakan baris arahan redis Apr 10, 2025 pm 10:18 PM

Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

Cara Melaksanakan Kaunter Redis Cara Melaksanakan Kaunter Redis Apr 10, 2025 pm 10:21 PM

Kaunter Redis adalah satu mekanisme yang menggunakan penyimpanan pasangan nilai utama REDIS untuk melaksanakan operasi pengiraan, termasuk langkah-langkah berikut: mewujudkan kekunci kaunter, meningkatkan tuduhan, mengurangkan tuduhan, menetapkan semula, dan mendapatkan tuduhan. Kelebihan kaunter Redis termasuk kelajuan cepat, konkurensi tinggi, ketahanan dan kesederhanaan dan kemudahan penggunaan. Ia boleh digunakan dalam senario seperti pengiraan akses pengguna, penjejakan metrik masa nyata, skor permainan dan kedudukan, dan pengiraan pemprosesan pesanan.

Cara Menetapkan Dasar Tamat Redis Cara Menetapkan Dasar Tamat Redis Apr 10, 2025 pm 10:03 PM

Terdapat dua jenis strategi tamat tempoh data REDIS: Penghapusan berkala: Imbasan berkala untuk memadamkan kunci yang telah tamat tempoh, yang boleh ditetapkan melalui parameter-cap-cap-rempah yang telah tamat tempoh dan parameter kelewatan-cap-remove-time-time. Penghapusan Lazy: Periksa kekunci yang telah tamat tempoh hanya apabila kunci dibaca atau ditulis. Mereka boleh ditetapkan melalui parameter lazon-lazy-expire-expire-expire, lazy-lazy-user-del parameter.

Cara Mengoptimumkan Prestasi Debian Readdir Cara Mengoptimumkan Prestasi Debian Readdir Apr 13, 2025 am 08:48 AM

Dalam sistem Debian, panggilan sistem Readdir digunakan untuk membaca kandungan direktori. Jika prestasinya tidak baik, cuba strategi pengoptimuman berikut: Memudahkan bilangan fail direktori: Split direktori besar ke dalam pelbagai direktori kecil sebanyak mungkin, mengurangkan bilangan item yang diproses setiap panggilan readdir. Dayakan Caching Kandungan Direktori: Bina mekanisme cache, kemas kini cache secara teratur atau apabila kandungan direktori berubah, dan mengurangkan panggilan kerap ke Readdir. Cafh memori (seperti memcached atau redis) atau cache tempatan (seperti fail atau pangkalan data) boleh dipertimbangkan. Mengamalkan struktur data yang cekap: Sekiranya anda melaksanakan traversal direktori sendiri, pilih struktur data yang lebih cekap (seperti jadual hash dan bukannya carian linear) untuk menyimpan dan mengakses maklumat direktori

See all articles