新聞中心
Redis是一種流行的內存 KEY-value 數(shù)據(jù)庫,因為其迅速、低延遲的數(shù)據(jù)存取,在很多應用場景中被廣泛使用。Redis 鍵(Key)的存儲格式是 binary safe,即當 key 中存儲了非 ASCII 字符,這時候在 Redis-cli 上查看時可能會出現(xiàn)亂碼,這是因為 Redis-cli 并不能很好的處理非 ASCII 字符。

我們提供的服務有:做網(wǎng)站、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、蛟河ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的蛟河網(wǎng)站制作公司
一般情況下,Redis 的 key 并不會存儲特殊字符,但是由于一些問題,Redis key 可能會出現(xiàn)亂碼問題,比如當你從關系數(shù)據(jù)庫拉回 key 并 set 到 redis 時候會導致亂碼。解決這種情況有幾種常見解決方案:
第一種方法是根據(jù) key 的實際編碼來進行強制轉換,比如我們可以使用 iconv 函數(shù)將 key 從 ISO-8859-1 轉換為 UTF-8:
$redis->set(‘key’, iconv(‘ISO-8859-1’, ‘UTF-8’, “mi clave es: 杰克”));
第二種方法是使用 phpredis 庫,它可以支持 key 的解析,里面有專門的函數(shù)可以解析字符編碼:
use Redis;
$redis = new Redis();
$redis->connect(‘127.0.0.1’, 6379);
$redis->set(‘key’, “\xE6\x9D\xB0\xE5\x85\x8B”);
$redis->_redis_decode_key(‘key’);
也可以通過在 redis.conf 配置文件中指定字符編碼來更改 Redis-cli 編碼:
/etc/redis/redis.conf
:
:
#Use default system encoding
syslog-encoding utf-8
使用以上方法可以解決絕大部分 Redis 鍵亂碼的問題,但是仍有一些不可預知的亂碼存在,這時應該嘗試在 redis.conf 中指定默認編碼來進一步避免出現(xiàn)亂碼情況。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產品開發(fā)和營銷公司。廣泛應用于計算機網(wǎng)絡、設計、SEO優(yōu)化、關鍵詞排名等多種行業(yè)!
分享名稱:解決Redis鍵亂碼的奧秘(redis鍵亂碼的東西)
標題鏈接:http://www.5511xx.com/article/cdcpdch.html


咨詢
建站咨詢
