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

我們提供的服務(wù)有:做網(wǎng)站、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、蛟河ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的蛟河網(wǎng)站制作公司
一般情況下,Redis 的 key 并不會存儲特殊字符,但是由于一些問題,Redis key 可能會出現(xiàn)亂碼問題,比如當(dāng)你從關(guān)系數(shù)據(jù)庫拉回 key 并 set 到 redis 時(shí)候會導(dǎo)致亂碼。解決這種情況有幾種常見解決方案:
第一種方法是根據(jù) key 的實(shí)際編碼來進(jìn)行強(qiáng)制轉(zhuǎn)換,比如我們可以使用 iconv 函數(shù)將 key 從 ISO-8859-1 轉(zhuǎn)換為 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 鍵亂碼的問題,但是仍有一些不可預(yù)知的亂碼存在,這時(shí)應(yīng)該嘗試在 redis.conf 中指定默認(rèn)編碼來進(jìn)一步避免出現(xiàn)亂碼情況。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計(jì)算機(jī)網(wǎng)絡(luò)、設(shè)計(jì)、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
當(dāng)前文章:解決Redis鍵亂碼的奧秘(redis鍵亂碼的東西)
標(biāo)題來源:http://m.fisionsoft.com.cn/article/cdcpdch.html


咨詢
建站咨詢
