Table des matières
[Introduction]" >[Introduction]
[Introduction aux types de données]" >[Introduction aux types de données]
Maison base de données tutoriel mysql Apprentissage et application MySQL Redis

Apprentissage et application MySQL Redis

Feb 28, 2017 pm 01:22 PM

Les bases de données relationnelles telles que MySQL ont des performances de lecture et d'écriture limitées lorsque les données sont stockées dans des situations de concurrence élevée. Nosql (base de données non relationnelle) a été créé pour compenser cela. . surmonter les lacunes des bases de données relationnelles.

[Introduction]

redis est un formulaire de stockage clé-valeur La base de données Nosql est largement utilisé. Il prend en charge la réplication maître-esclave, le traitement des transactions, le verrouillage optimiste, le contrôle des transactions complexes, la persistance, la publication et l'abonnement aux messages et d'autres fonctionnalités.

[Introduction aux types de données]

Le type de données de redis est plus simple que celui d'une base de données relationnelle et est divisé en 5 types principaux : chaîne, hachages, listes, ensembles et ensemble trié.

1. Le type de chaîne est un type de données binaire sûr qui peut stocker des images jps ou des paires sérialisées. Les commandes de base de données Redis couramment utilisées sont : <.>

<span style="font-family:KaiTi_GB2312;">		
</span>
<span style="font-family:SimSun;">a. Set name lijie ----设置name=lijie
		b. Setnx 设置如果name存在,则返回0,设置不成功(nx--not exit)
		c. Setex 指定有效期:set haircolor 10 red   --10秒失效
		d. Setrange name 6 gmail.com  ----从第6个开始设置
		e. Mset key1 lijie1 key2 lijei2 key3 lijie3 --设置多个键值对
		f.  get --获得字符
		g. Getrange eamil 0 5  从下标为0到5的值
		h. Mget--批量返回
		i. Incr key6 --自增
		j. Incrby key5 6--以6来进行自增
		k. Decr/decrby
		l. Append key1 .net 在key1后面增加.net
		m. Strlen--返回长度</span><span style="font-family:KaiTi_GB2312;">
</span>
Copier après la connexion

2. Le type de hachage prend moins de mémoire Commandes courantes :

<🎜. >

		  <span style="font-family:SimSun;">a. Hset--hset user:001 name lijie
		b. Hsetnx--hsetnx user:002 name lamp
		c. Hmset---hmset user:003 name lijie age 20 sex 1
		d. Hincrby--自增
		e. Hexists--判断是否存在 hexits user:002 name
		f. Hlen----返回所有键数量
		g. Hdel--hdel user:003 age
		h. Hkeys --hkeys user:001
		i. Hvals---hvals user:003
		j. Hgetall---获取所有fileds和value</span>
Copier après la connexion
3. Le type de données des listes est divisé en deux structures de données : la structure de liste chaînée et la file d'attente. Commandes communes :


.

		<span style="font-family:SimSun;">a. Lpush--从头部压入元素:lpush list1 "hello"--栈
		b. Lrang myliist 0 -1  从头部一直去不到尾部
		c. Rpush---rpush list2 "hello"---队列
		d. Linsert---linsert list2 before hello word
		e. Lset--指定下标赋值:lset list2 1 my
		f. Lrem--从list 中删除n个和value相同的值
		g. Ipop从头弹出元素
		h. Rpop 从尾部
		i. Rpoplpush
		j. Lindex---lindex list2 2
		k. Llen---返回长度</span>
Copier après la connexion
4. Le type d'ensemble prend en charge les opérations d'union, d'intersection, de croisement et autres, utilisez la commande :


		<span style="font-family:SimSun;">a. Sadd--sadd myset1 one
		b. Smembers--查看
		c. Srem --srem myset2 "one"
		d. Spop--随机弹出
		e. Sdiff--两个集合的差集  
		f. Sdiffstor---叉集存储到指定sets里面:sdiffstore myset4 myset2 myset3
		g. Siner--返回交集/sinnerstore
		h. Sunion--并集/
		i. Smove---将第一个set中元素剪切到第二个set中 smove myset1 myset8 three
		j. Scard --查看个数
		k. Sismemeber---测试元素是不是set中元素
		l. Srandmember--随机返回元素不会删除</span>
Copier après la connexion
5. L'ensemble de tri est un ensemble ordonné :


		<span style="font-family:SimSun;">a. Zadd---zadd myzset “one”
		b. 取值:zrange myzet 0 -1 withscores(显示顺序)
		c. Zrem--zrem myzset two
		d. Zincrby--zincrby sset1 2 one--对顺序号进行增加
		e. Zrank--返回 索引:zrank myset3 two
		f. Zrevrank
		g. Zrerange--降序排序
		h. Zrangebyscore--按照范围返回:zrangebyscore sset2 2 4 with scores
		i. Zcount--返回数量 zcount seet2 2 4
		j. Zcard --返回 
		k. Zremrangebyrank--按照索引删除
		l. Zremrangebyscore--按照顺序删除</span>
Copier après la connexion

[application Java ]

L'application de redis en java nécessite l'introduction du package jar : import redis.clients.jedis.Jedis;

Si vous n'utilisez pas le pool de connexion, utilisez-le directement dans le code : Jedis client=new Jedis("ip address",6379);, qui peut réaliser la connexion redis. pool de connexions, créez une classe de pool de connexions :

package com.tgb.itoo.exam.students.controller;

import java.util.ResourceBundle;

import org.springframework.util.Assert;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class JedisPoolTest {
	private static JedisPool jedisPool;
	
	private static JedisPoolConfig initPoolConfig(){
		 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();  
	     // 控制一个pool最多有多少个可用的的jedis实例  
//	     jedisPoolConfig.setMaxActive(1000);   
	        // 最大能够保持空闲状态的对象数  
	     jedisPoolConfig.setMaxIdle(300);  
	        // 超时时间  
	     jedisPoolConfig.setMaxWaitMillis(1000);  
	        // 在borrow一个jedis实例时,是否提前进行alidate操作;如果为true,则得到的jedis实例均是可用的;  
	     jedisPoolConfig.setTestOnBorrow(true);   
	        // 在还会给pool时,是否提前进行validate操作  
	     jedisPoolConfig.setTestOnReturn(true);  
	     return jedisPoolConfig;  
	}
	
	 /** 
     * 初始化jedis连接池 
     * <br>------------------------------<br> 
     */  
      
    public static void before() {  
        JedisPoolConfig jedisPoolConfig = initPoolConfig();    
        // 属性文件读取参数信息  
        ResourceBundle bundle = ResourceBundle.getBundle("redis_config");  
        String host = bundle.getString("redis.host");  
        int port = Integer.valueOf(bundle.getString("redis.port"));  
        int timeout = Integer.valueOf(bundle.getString("redis.timeout"));  
        String password = bundle.getString("redis.password");  
        // 构造连接池  
        jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);  
    }  
    

    public void testSet() {  
        Jedis jedis = null;   
        // 从池中获取一个jedis实例  
        try {  
            jedis = jedisPool.getResource();  
            jedis.set("blog_pool", "java2000_wl");  
        } catch (Exception e) {  
            // 销毁对象  
            jedisPool.returnBrokenResource(jedis);  
//            Assert.fail(e.getMessage());  
        } finally {  
            // 还会到连接池  
            jedisPool.returnResource(jedis);  
        }  
    }    
}
Copier après la connexion

Application de technologie de pipeline


 

Lorsque Redis effectue des opérations d'écriture continues, afin de réduire le nombre de fois que la base de données est ouverte et fermée, la création d'un pipeline peut améliorer les performances : <🎜. >

Ce qui précède est le contenu de l'apprentissage et de l'application de MySQL redis. Pour plus de contenu connexe, veuillez faire attention au chinois PHP. site Web (www.php.cn) !

                Pipeline pipeline=client.pipelined();
		
		for (TemplateDetail templateDetail : templateDetails) {
			List<QuestionMain> questionMains=templateDetail.getQuestionMainList();
			for (QuestionMain questionMain : questionMains) {
				if(null!=questionMain){
				String redisKey=studenInfo.getStudentId()+"_"+studenInfo.getExamination_id()+"_"+questionMain.getId()+"_exam";
				
				try {
					pipeline.lpush(redisKey,JsonUtils.objectToJson(questionMain));
					pipeline.expire(redisKey, 7200);
				} catch (IOException e) {	
					e.printStackTrace();
				}				
				}
			}			
		}
		pipeline.sync();//管道执行
Copier après la connexion





Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment démarrer MySQL par Docker Comment démarrer MySQL par Docker Apr 15, 2025 pm 12:09 PM

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

Rôle de MySQL: Bases de données dans les applications Web Rôle de MySQL: Bases de données dans les applications Web Apr 17, 2025 am 12:23 AM

Le rôle principal de MySQL dans les applications Web est de stocker et de gérer les données. 1.MySQL traite efficacement les informations utilisateur, les catalogues de produits, les enregistrements de transaction et autres données. 2. Grâce à SQL Query, les développeurs peuvent extraire des informations de la base de données pour générer du contenu dynamique. 3.MySQL fonctionne basé sur le modèle client-serveur pour assurer une vitesse de requête acceptable.

Exemple d'introduction de Laravel Exemple d'introduction de Laravel Apr 18, 2025 pm 12:45 PM

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Comment installer MySQL dans CentOS7 Comment installer MySQL dans CentOS7 Apr 14, 2025 pm 08:30 PM

La clé de l'installation de MySQL est d'élégance pour ajouter le référentiel MySQL officiel. Les étapes spécifiques sont les suivantes: Téléchargez la clé GPG officielle MySQL pour empêcher les attaques de phishing. Ajouter un fichier de référentiel MySQL: RPM -UVH https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Mise à jour du référentiel Cache: Yum Update Installation Mysql: Yum install install install starting starting mysql Service: SystemCTL start start mysqld starger bugo boartup Service mysql Service: SystemCTL start start mysqld starger bugo bo onthing staring Service mysql Service: SystemCTL Start Start MySQLD Set Out Up Boaching Staring Service MySQL Service: SystemCTL Start Start MysQL

CentOS installe MySQL CentOS installe MySQL Apr 14, 2025 pm 08:09 PM

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.

Comment installer Redis dans CentOS7 Comment installer Redis dans CentOS7 Apr 14, 2025 pm 08:21 PM

Téléchargez le package de code source à partir de la source Redis officielle pour le compiler et l'installer pour assurer la version la plus récente et stable et peut être personnalisée de manière personnalisée. Les étapes spécifiques sont les suivantes: Mettez à jour la liste des packages logiciels et créez le répertoire redis Télécharger Reded Code source Package Décompressez le package de code source et compilez la configuration d'installation et modifiez la configuration redis pour démarrer Redis vérifiez l'état de démarrage

Résolvez le problème de la connexion de la base de données: un cas pratique d'utilisation de la bibliothèque Minii / DB Résolvez le problème de la connexion de la base de données: un cas pratique d'utilisation de la bibliothèque Minii / DB Apr 18, 2025 am 07:09 AM

J'ai rencontré un problème délicat lors du développement d'une petite application: la nécessité d'intégrer rapidement une bibliothèque d'opération de base de données légère. Après avoir essayé plusieurs bibliothèques, j'ai constaté qu'ils avaient trop de fonctionnalités ou ne sont pas très compatibles. Finalement, j'ai trouvé Minii / DB, une version simplifiée basée sur YII2 qui a parfaitement résolu mon problème.

Comment configurer lent des requêtes de connexion Centos redis Comment configurer lent des requêtes de connexion Centos redis Apr 14, 2025 pm 04:54 PM

Activez les journaux de requête lents redis sur le système CentOS pour améliorer l'efficacité du diagnostic des performances. Les étapes suivantes vous guideront à travers la configuration: Étape 1: Localisez et modifiez d'abord le fichier de configuration Redis, recherchez le fichier de configuration Redis, généralement situé dans /etc/redis/redis.conf. Ouvrez le fichier de configuration avec la commande suivante: sudovi / etc / redis / redis.conf Étape 2: Ajustez les paramètres de journal de requête lente dans le fichier de configuration, recherchez et modifiez les paramètres suivants: #Slow Query Seuil (MS) Slowlog-Log-slower-Len

See all articles