1. 程式人生 > >C#使用Redis做快取遇到的坑處理方案

C#使用Redis做快取遇到的坑處理方案

前言:因為redis相關的demo,教程已經很多了,所以這裡就不說了,現在主要說下我在使用過程中遇到的坑,因為這些坑在不知道什麼原因的情況下處理起來非常浪費時間,所以我把我遇到的坑整理出來。

一. c#連線設定了密碼的redis的坑

1.c#連線設定了密碼的redis   相關教程:點選開啟連結

可能有人會出現照著這個教程做的結果沒效果,報錯如下:


也可能是別的提示錯誤。

參考解決方案

  1.是因為引用的redis相關dll檔案版本過低,不支援[email protected]:port  這種連線,可嘗試使用NuGet 安裝較新的dll再試。NuGet控制檯 pm命令安裝指令Install-Package ServiceStack.Redis (-Version 4.0.62

) 括號內的為版本號,版本問題會引起安裝的redis元件版本與當前的.NET元件不相容,報錯如下圖。所以依自己程式的.NET版本而定(※ V4以上版本的ServiceStack已經商業化,每小時只能訪問Redis 6000次,超出會報錯“The free-quota limit on '6000 Redis requests per hour' has been reached“,是否使用看個人需求了。下面會說到解決方案) 參考連結:點選開啟連結


  2.因為V4版本的訪問次數限制,大多數情況下不能滿足我們的需求,而低版本的ServiceStack沒有這個限制 ,所以這裡只能選擇低版本的ServiceStack

了。NuGet控制檯 pm命令安裝指令 Install-Package ServiceStack.Redis -Version 3.0 安裝3.0版本的ServiceStack。(3.0版本的和4.0版本的用連線池連線有密碼的redis時有一處不同,4.0可以使用這種方式[email protected]:Port連線,而3.0版本是不支援的,IRedisClient介面有一個屬性Password,這個屬性就是用來設定連線密碼的!)

二.Redis服務端的坑

  1.啟動不了redis服務的問題?1053錯誤??

參考解決方案

  因為redis.conf 配置檔案中有引數配置錯誤導致redis出錯,從而啟動不了redis服務。可嘗試還原redis.conf配置檔案在重試。

  2.客戶端在連線redis時出現連線不上,報錯目標計算機積極拒絕,無法連線等錯誤??(出這個錯誤的典型版本是3.2.100)


參考解決方案

  1.redis2.x版本是否都沒有這個問題,換了3.x版本就不行。①開啟redis.conf或redis.windows.conf查詢bind,如果有bind localhost,就把它註釋掉;②把圖片所示的bind 127.0.0.1改成bind 0.0.0.0,註釋會出錯,只能修改。這樣就可以把訪問限制去掉了,然後在客戶端重試下,是不是可以了!


  2.嘗試關閉防火牆或增加入站出戰規則,放行redis的埠號。

  3.嘗試重啟伺服器

※conf檔案修改後,都需要重啟redis服務才能有效果!

相關推薦

C#使用Redis快取遇到的處理方案

前言:因為redis相關的demo,教程已經很多了,所以這裡就不說了,現在主要說下我在使用過程中遇到的坑,因為這些坑在不知道什麼原因的情況下處理起來非常浪費時間,所以我把我遇到的坑整理出來。 一. c#連線設定了密碼的redis的坑 1.c#連線設定了密碼的redis  

使用redis快取的單機、叢集版的簡單使用

一.簡介與安裝 Redis是c語言開發的。(裝c語言環境、解壓、編譯、安裝)埠號6379 很多專案中,為了緩解我們伺服器與資料庫的壓力,我們使用快取。 安裝redis需要c語言的編譯環境。如果沒有gcc需要線上安裝。yum install gcc-c++ 安裝步驟: 第一步:re

Redis快取高併發處理

Springboot 整合Redis,快取過期之後,如果多個執行緒同時請求對某個資料的訪問,會同時去到資料庫,導致資料庫瞬間負荷增高。 解決辦法: ①Spring4.3為@Cacheable註解提供了一個新的引數“sync”(boolean型別,預設為false),當設定它為true時,

springboot 整合redis 快取

  一、新增依賴jar包 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-re

Springboot之使用Redis快取資料

一、新增Redis依賴 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o

學習yijun zhang 老師的商品秒殺專案所得(1)——使用Redis快取優化的簡單實現

主要使用的功能: 1.基於java的redis工具——Jedis 2.JDK本身提供的序列化方式——實現Serializable 3.實現序列化要用到的IO流——ByteArrayInputStream,ByteArrayOutputStream,ObjectI

springboot2.x 和用redis快取的整合,有專案地址的呦

1. springboot和用redis做快取的整合 這裡要整合的是springboot2.x和redis,所以你要把你的springboot 版本在開始之前換成springboot2.0之後的 具體怎麼換其實就是換一下版本號,不換的話後面會有很多問題,樓主踩了無數坑 專案地

Spring boot如何使用redis快取快取註解的用法總結

1. 概述 本文介紹Spring boot 如何使用redis做快取,如何對redis快取進行定製化配置(如key的有效期)以及spring boot 如

Maven+SSM使用redis快取 Spring5(JavaConfig註解配置)

1. 配置環境 Redis 4 安裝教程自行google Spring 5.0.9 Mybatis 3.4.6 2. 依賴 注意: 預設你配置好了SSM的依賴環境,我只說在SSM配好過後怎麼把redis加進去 我用的依賴是如下的版本,基本都沒有最新jar包

SpringBoot使用redis快取機制

SpringBoot 2.0.3 版本、redis3.2版本 1. 加入jar包 <dependency> <groupId>org.springframework.boot</groupId> &

在專案中redis快取的一些思路

首先,快取的物件有三種: 1:資料庫中單條的的資料(以表名跟id作為key永久儲存到redis),在有更新的地方都要更新快取(不適用於需要經常更新的資料); 2:對於一些不分頁,不需要實時(需要多表查詢)的列表,我們可以將列表結果快取到redis中,設定一定快取時間作為該資

XMLHttpRequest請求的快取問題的處理方案

由於瀏覽器的快取機制,當我們使用XMLHttpRequest發出請求的時候,瀏覽器會將請求的地址與快取中的地址進行比較,如果存在相同記錄則根據不向伺服器發出請求而直接返回與上一次請求相同內容。其實不光是在Ajax應用中,在我們專案開發中使用一個基本的JavaScript更換驗證碼時,也會發生髮出請求之後,並沒

springboot整合mybatis,mysql資料庫儲存,redis快取

redis應用的場景通過快取來減少對關係型資料庫的查詢次數,減輕資料庫壓力。在執行DAO類的select***(), query***()方法時,先從Redis中查詢有沒有快取資料,如果有則直接從Redis拿到結果,如果沒有再向資料庫發起查詢請求取資料。springboot已

SSM整合Redis快取(含完整Demo)

之前一段時間自學了Redis,進行一下總結三個部分:    1. Linux環境下的redis客戶端操作    2. 在java程式中使用redis:        2.1)匯入jedis.jar包        2.2)直接 Jedis jedis = new Jedis(

SpringBoot之Mybatis操作中使用Redis快取

上一部落格學習了SpringBoot整合Redis,今天這篇部落格學習下Mybatis操作中使用Redis做快取。這裡其實主要學習幾個註解:@CachePut、@Cacheable、@CacheEvict、@CacheConfig。 一、基礎知識 @Cacheable @Cacheable 的作用 主要針對方

redis快取的簡單例項

由於之前對redis有了一個系統的研究,在公司的多個專案中使用redis當做資料快取;所以趁著這些天晚上的時間,自己寫了一個demo;這裡僅供自己後期學習筆記參考,若有不對的地方,請輕拍磚! redis 官網推薦給java 使用的客戶端很多:Jedis、Redi

redis快取優勢

1、 Redis簡介 redis是Nosql資料庫中使用較為廣泛的非關係型記憶體資料庫,redis內部是一個key-value儲存系統。它支援儲存的value型別相對更多,包括string(字串)、list(連結串列)、set(集合)、zset(sorted

使用Redis快取資料庫來存放資料和Mybatis自帶的二級快取,兩者相比各自有什麼優勢?

Redis方案:    1.擴充套件性號,資料量大的時候做主從複製,或者叢集來進行擴充套件。    2.不易丟失,可以週期性持久化。    3.降低風險,被快取的記憶體和應用程式的記憶體分開,有助於風險分攤。    4.靈活多變,對於快取失效和更新操作可自主控制。    5.

SpringBoot使用redis快取

Redis由於資料存在記憶體中,類似於HashMap,HashMap的優勢就是查詢和操作的時間複雜度都是O(1),支援豐富資料型別,也支援事務,操作都是原子性,還具有其他豐富的特性,如可按key設定過期時間,過期後將會自動刪除.因此我們通常使用redis來作為快取,下面我根

Spring使用redis快取在一個方法上使用註解操作多個快取

我們使用的最基礎的Spring快取註解如下:     @Cacheable   生成快取   一般用在查詢Service介面上     @Cacheable(value={"users"}, key="#user.id", condition="#user.id%2==0