原创 Redis命令之HGetAll性能問題解決方案

最近工作中,系統壓測遇到一個性能瓶頸問題,通過最終排查,發現應用接口中使用了大量的Hgetall命令從Redis中查詢數據信息,導致Redis單實例OPS達到秒鐘7W次,Redis服務器CPU使用率達到上限,遇到性能問題。 HGET

原创 Redis的內存優化與對持久化機制的分析

通過對Redis支持的數據類型實現上的分析可以看出redis實際上的內存管理成本非常高,即佔用了過多的內存,作者對這點也非常清楚,所以提供了一系列的參數和手段來控制和節省內存,我們分別來討論下。 常用內存優化手段與參數 首先最重

原创 JVM堆內存結構分配

JVM的堆內存分爲新生代(Young Generation)和舊生代(Old Generation)。新生代分爲Eden區和Survivor區。Survivor區分爲From Survivor和To Survivor。如圖: 從上圖

原创 Spring事務傳播機制:UnexpectedRollbackException

異常堆棧: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked a

原创 Redis主從之從Redis服務器Key不失效

    大家在使用redis的時候,經常會用expire來設置key的過期時間,以爲某個key到期就會馬上清除。如果只是在單個redis(即一個主redis)下是沒有問題的。但是如果爲了實現讀寫分離,搭建了主從服務器,那麼就會遇上從庫Ke

原创 Redis的學習之管道

Redis的工作模式:請求響應式 Redis是一個使用客戶端/服務器模型(也被稱作請求/響應協議)的TCP服務器。 這說明通常來講一個一個請求的實現有以下步驟: 1.客戶端發送請求到服務器,並從socket中以堵塞的方式讀取服務器

原创 ThreadPoolExecutor線程池使用介紹

</pre><pre name="code" class="java"><pre name="code" class="java"><pre name="code" class="java"> // 線程池

原创 Redis兩種存儲機制(持久化)的比較

Redis存儲機制分成兩種Snapshot 和 AOF。無論是那種機制,Redis都是將數據存儲在內存中。         Snapshot工作原理: 是將數據先存儲在內存,然後當數據累計達到某些設定的伐值的時候,就會觸發一次DUM

原创 requestWindowFeature()的應用詳解

android開發中經常會在setContentView(R.layout.XXX); 前設置requestWindowFeature(XXXX)。 他的意思是需要軟件全屏顯示、自定義標題(使用按鈕等控件)和其他的需求 首先

原创 對Redis的理解總結

1. Redis是什麼 這個問題的結果影響了我們怎麼用Redis。如果你認爲Redis是一個key value store, 那可能會用它來代替MySQL;如果認爲它是一個可以持久化的cache, 可能只是它保存一些頻繁訪問的臨時數據

原创 Redis的發佈/訂閱(pub/sub)

發佈訂閱(pub/sub)是一種消息通信模式,主要的目的是解耦消息發佈者和消息訂閱者之間的耦合,這點和設計模式中的觀察者模式比較相似。pub /sub不僅僅解決發佈者和訂閱者直接代碼級別耦合也解決兩者在物理部署上的耦合。redis作爲一

原创 Redis常用數據類型

Redis最爲常用的數據類型主要有以下五種:String  Hash  List  Set  Sorted set 下面我們先來逐一的分析下這五種數據類型的使用和內部實現方式: String常用命令:set,get,decr,incr,

原创 Android中判斷網絡狀態

<span style="font-size:14px;">package com.taobao.tae.buyingdemo.util; import android.content.Context; import android.n

原创 Android中自定義特定顏色的Toast

/** * 展示一個特定顏色的Toast * * @param message */ protected void toast(String message) { View