ホームページ > データベース > mysql チュートリアル > MySQL Redis の学習とアプリケーション

MySQL Redis の学習とアプリケーション

黄舟
リリース: 2017-02-28 13:22:17
オリジナル
2035 人が閲覧しました

mySQLやその他のリレーショナルデータベースなどのリレーショナルデータベースは、データが高い状況(非関係データベース)に保存されている場合、読み取りと書き込みのパフォーマンスが制限されています。

【はじめに】

Redis は、マスター/スレーブ レプリケーション、トランザクション処理、楽観的ロック、複雑なトランザクション制御、耐久性、メッセージの公開と購読、その他の機能。

【データ型の紹介】

Redisのデータ型はリレーショナルデータベースに比べて比較的シンプルで、大きく分けて文字列、ハッシュの5種類に分かれます。 、リスト、セット、ソートされたセット。

1. 文字列型は、JPS イメージまたはシリアル化されたペアを保存できるバイナリの安全なデータ型です。 一般的に使用される Redis データベース コマンドは次のとおりです。

<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>
ログイン後にコピー
2.ハッシュタイプはより多く 一般的に使用されるいくつかのコマンド:


		  <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>
ログイン後にコピー
3. リストのデータタイプは、リンクリスト構造とキューの 2 つのデータ構造に分かれています。 一般的なコマンド:


		<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>
ログイン後にコピー
4. セットタイプは、和集合、交差セット、およびその他の演算をサポートします:


		<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>
ログイン後にコピー

5. ソートセットは順序付きセットです:


rreee

[java application]彼女のハーブ 彼女のためにやるべきこと 私の世界で彼女がやるべきこと

接続プールを使用しない場合は、コード内で直接使用します: Jedis client=new Jedis("ip address",6379);接続プールを使用する場合、接続プール クラスを作成します:

		<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>
ログイン後にコピー

パイプライン テクノロジー アプリケーション

Redis が連続書き込み操作を実行するとき、データベースを開いたり閉じたりする回数を減らし、パイプラインを作成するとパフォーマンスが向上します。 実際の使用方法:

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);  
        }  
    }    
}
ログイン後にコピー

上記は MySQL Redis の学習と応用です。その他の関連コンテンツについては、お支払いください。 PHP 中国語 Web サイト (m.sbmmt.com) に注意してください。



ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート