redis

NoSQL介紹

一類(lèi)新出現(xiàn)的數(shù)據(jù)庫(kù)(not only sql)婴氮,它的特點(diǎn):

  • 不支持SQL語(yǔ)法
  • 存儲(chǔ)結(jié)構(gòu)跟傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中的那種關(guān)系表完全不同是掰,nosql中存儲(chǔ)的數(shù)據(jù)都是KV形式
  • NoSQL的世界中沒(méi)有一種通用的語(yǔ)言历帚,每種nosql數(shù)據(jù)庫(kù)都有自己的api和語(yǔ)法,以及擅長(zhǎng)的業(yè)務(wù)場(chǎng)景
  • NoSQL中的產(chǎn)品種類(lèi)相當(dāng)多:
    Mongodb
    Redis
    Hbase hadoop
    Cassandra hadoop

Redis 簡(jiǎn)介

Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)虫几、可基于內(nèi)存亦可持久化的日志型黑低、Key-Value數(shù)據(jù)庫(kù)赘艳,并提供多種語(yǔ)言的AP

Redis 特性

Redis 與其他 key - value 緩存產(chǎn)品有以下三個(gè)特點(diǎn):

  • Redis支持?jǐn)?shù)據(jù)的持久化酌毡,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤(pán)中,重啟的時(shí)候可以再次加載進(jìn)行使用蕾管。
  • Redis不僅僅支持簡(jiǎn)單的key-value類(lèi)型的數(shù)據(jù)枷踏,同時(shí)還提供list,set掰曾,zset旭蠕,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。
  • Redis支持?jǐn)?shù)據(jù)的備份旷坦,即master-slave模式的數(shù)據(jù)備份

Redis 優(yōu)勢(shì)

  • 性能極高 – Redis能讀的速度是110000次/s,寫(xiě)的速度是81000次/s 掏熬。
  • 豐富的數(shù)據(jù)類(lèi)型 – Redis支持二進(jìn)制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 數(shù)據(jù)類(lèi)型操作。
  • 原子 – Redis的所有操作都是原子性的秒梅,同時(shí)Redis還支持對(duì)幾個(gè)操作全并后的原子性執(zhí)行旗芬。
  • 豐富的特性 – Redis還支持 publish/subscribe, 通知, key 過(guò)期等等特性。

Redis應(yīng)用場(chǎng)景

  • 用來(lái)做緩存(ehcache/memcached)——redis的所有數(shù)據(jù)是放在內(nèi)存中的(內(nèi)存數(shù)據(jù)庫(kù))
  • 可以在某些特定應(yīng)用場(chǎng)景下替代傳統(tǒng)數(shù)據(jù)庫(kù)——比如社交類(lèi)的應(yīng)用
  • 在一些大型系統(tǒng)中捆蜀,巧妙地實(shí)現(xiàn)一些特定的功能:session共享疮丛、購(gòu)物車(chē)
  • 只要你有豐富的想象力,redis可以用在可以給你無(wú)限的驚喜…….

ubuntu 安裝下載

  • 第一步:下載

wget http://download.redis.io/releases/redis-4.0.10.tar.gz

  • 第二步:解壓

tar xzf redis-4.0.10.tar.gz

  • 第三步:復(fù)制,放到usr/local目錄下面

sudo mv ./redis-4.0.10 /usr/local/redis/

  • 第四步:進(jìn)入redis目錄

cd /usr/local/redis/

  • 第五步:生成

sudo make

  • 第六步: 測(cè)試,這段運(yùn)行時(shí)間會(huì)比較長(zhǎng)

sudo make test

  • 第七步:安裝,將Redis的命令安裝到/usr/local/bin/目錄

sudo make install

  • 第八步: 安裝完成后,我們進(jìn)入目錄/usr/local/bin中查看

cd /usr/local/bin
ls -all
redis-server redis服務(wù)器
redis-cli redis命令行客戶端
redis-benchmark redis性能測(cè)試工具
redis-check-aof AOF文件修復(fù)工具
redis-check-rdb RDB文件檢索工具

  • 第九步: 配置文件,移動(dòng)到/etc/目錄下

配置文件目錄為/usr/local/redis/redis.conf
sudo cp /usr/local/redis/redis.conf /etc/redis/

  • 配置
    Redis的配置信息在/etc/redis/redis.conf
    查看

sudo vi /etc/redis/redis.conf

  • 核心配置選項(xiàng)
    綁定ip:如果需要遠(yuǎn)程訪問(wèn),可以將此行注釋,或者綁定一個(gè)真實(shí)ip

bind 127.0.0.1
端?辆它,默認(rèn)為6379
是否以守護(hù)進(jìn)程運(yùn)行
如果以守護(hù)進(jìn)程運(yùn)行,則不會(huì)在命令行阻塞,類(lèi)似服務(wù)
如果以非守護(hù)進(jìn)程運(yùn)行,則當(dāng)前終端被阻塞
設(shè)置為yes表示守護(hù)進(jìn)程,設(shè)置為no表示非守護(hù)進(jìn)程
推薦設(shè)置為yes


5b76c93e7c7b1.png
  • 數(shù)據(jù)文件

dbfilename dump.rdb

  • 日志文件

logfile /var/log/redis/redis-server.log

  • 數(shù)據(jù)庫(kù),默認(rèn)有16個(gè)

database 16

客戶端

  • 連接服務(wù)器

redis-server

  • 連接redis

redis-cli

  • 運(yùn)行測(cè)試命令

ping

  • 切換數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)沒(méi)有名稱(chēng),默認(rèn)16個(gè),通過(guò)0-15來(lái)標(biāo)識(shí),鏈接redis默認(rèn)選擇第一個(gè)數(shù)據(jù)庫(kù)

select n


5b76d54d51f16.png

數(shù)據(jù)結(jié)構(gòu)

  • redis是key-value的數(shù)據(jù)結(jié)構(gòu)誊薄,每條數(shù)據(jù)都是?個(gè)鍵值對(duì)
  • 鍵的類(lèi)型是字符串
  • 注意:鍵不能重復(fù)
  • 值的類(lèi)型分為5種:
    字符串
    哈希hash
    列表
    set集合
    有序集合zset

數(shù)據(jù)操作行為

string類(lèi)型
字符串類(lèi)型是Redis中最為基礎(chǔ)的數(shù)據(jù)存儲(chǔ)類(lèi)型,它在Redis中是二進(jìn)制安全的锰茉,這便意味著該類(lèi)型可以接受任何格式的數(shù)據(jù)呢蔫,如JPEG圖像數(shù)據(jù)或Json對(duì)象描述信息等。在Redis中字符串類(lèi)型的Value最多可以容納的數(shù)據(jù)長(zhǎng)度是512M洞辣。
保存
如果設(shè)置的鍵不存在則為添加咐刨,如果設(shè)置的鍵已經(jīng)存在則修改

  • 設(shè)置鍵值

set key value
例1:設(shè)置鍵為name值為wwy的數(shù)據(jù)

set name wwy
5b76d6fcb1d7c.png
  • 設(shè)置鍵值及過(guò)期時(shí)間,以秒為單位

setex key seconds value
例2:設(shè)置鍵為aa值為wwy過(guò)期時(shí)間為3秒的數(shù)據(jù)

setex aa 3 wwy
5b76d7c44ba96.png
  • 設(shè)置多個(gè)鍵值

mset key1 value1 key2 value2 ...
例3:設(shè)置鍵為'a1'值為'python'扬霜、鍵為'a2'值為'java'定鸟、鍵為'a3'值為'c'
mset a1 python a2 java a3 c


5b76d82367c10.png
  • 追加值

append key value
例4:向鍵為a1中追加值' haha'
append 'a1' 'haha'


5b76d87fe2bef.png

獲取

  • 獲取:根據(jù)鍵獲取值,如果不存在此鍵則返回nil

get key
例5:獲取鍵'name'的值
get 'name'

  • 根據(jù)多個(gè)鍵獲取多個(gè)值

mget key1 key2 ...
例6:獲取鍵a1、a2檐薯、a3'的值
mget a1 a2 a3

5b76d96ee399d.png

鍵命令

  • 查找鍵,參數(shù)支持正則表達(dá)式

keys pattern
例1:查看所有鍵
keys *
例2:查看名稱(chēng)中包含a的鍵
keys 'a*'

  • 判斷鍵是否存在,如果存在返回1沸久,不存在返回0

exists key1
例3:判斷鍵a1是否存在
exists a1


5b76dfba60b46.png
  • 查看鍵對(duì)應(yīng)的value的類(lèi)型

type key
例4:查看鍵a1的值類(lèi)型,為redis?持的五種類(lèi)型中的?種
type a1

  • 刪除鍵及對(duì)應(yīng)的值

del key1 key2 ...
例5:刪除鍵a2余蟹、a3
del a2 a3

  • 設(shè)置過(guò)期時(shí)間卷胯,以秒為單位,如果沒(méi)有指定過(guò)期時(shí)間則?直存在,直到使?DEL移除

expire key seconds
例6:設(shè)置鍵'a1'的過(guò)期時(shí)間為3秒
expire 'a1' 3

  • 查看有效時(shí)間威酒,以秒為單位

ttl key
例7:查看鍵'bb'的有效時(shí)間
ttl bb

hash

hash?于存儲(chǔ)對(duì)象窑睁,對(duì)象的結(jié)構(gòu)為屬性挺峡、值
值的類(lèi)型為string

增加、修改

  • 設(shè)置單個(gè)屬性

hset key field value
例1:設(shè)置鍵 user的屬性name為wwy789
hset user name wwy789

  • 設(shè)置多個(gè)屬性

hmset key field1 value1 field2 value2 ...
例2:設(shè)置鍵u2的屬性name為wengwenyu担钮、屬性age為11
hmset u2 name wengwenyu age 11

獲取

  • 獲取指定鍵所有的屬性

hkeys key
例3:獲取鍵u2的所有屬性
hkeys u2

  • 獲取?個(gè)屬性的值

hget key field
例4:獲取鍵u2屬性'name'的值
hget u2 name

  • 獲取多個(gè)屬性的值

hmget key field1 field2 ...
例5:獲取鍵u2屬性'name'橱赠、'age的值
hmget u2 name age

  • 取所有屬性的值

hvals key
例6:獲取鍵'u2'所有屬性的值
hvals u2

刪除

  • 刪除整個(gè)hash鍵及值,使?del命令
  • 刪除屬性箫津,屬性對(duì)應(yīng)的值會(huì)被?起刪除

hdel key field1 field2 ...
例7:刪除鍵'u2'的屬性'age'
hdel u2 age

list類(lèi)型

增加

  • 在左側(cè)插?數(shù)據(jù)

lpush key value1 value2 ...
例1:從鍵為'a1'的列表左側(cè)加?數(shù)據(jù)a 狭姨、 b 、c
lpush a1 a b c


5b76f2ab617c8.png

5b76f2d7ac13e.png
  • 在右側(cè)插?數(shù)據(jù)

rpush key value1 value2 ...
例2:從鍵為'a1'的列表右側(cè)加?數(shù)據(jù)0 1
rpush a1 0 1


5b76f3214069f.png
  • 在指定元素的前或后插?新元素

linsert key before或after 現(xiàn)有元素 新元素
例3:在鍵為'a1'的列表中元素'b'前加?'3'
linsert a1 before b 3

獲取

  • 返回列表?指定范圍內(nèi)的元素
    • start苏遥、stop為元素的下標(biāo)索引
    • 索引從左側(cè)開(kāi)始饼拍,第?個(gè)元素為0
    • 索引可以是負(fù)數(shù),表示從尾部開(kāi)始計(jì)數(shù)暖眼,如-1表示最后?個(gè)元素

lrange key start stop
例4:獲取鍵為'a1'的列表所有元素
lrange a1 0 -1


5b8143da42229.png

設(shè)置指定索引位置的元素值

  • 索引從左側(cè)開(kāi)始惕耕,第?個(gè)元素為0
  • 索引可以是負(fù)數(shù)纺裁,表示尾部開(kāi)始計(jì)數(shù)诫肠,如-1表示最后?個(gè)元素

lset key index value
例5:修改鍵為'a1'的列表中下標(biāo)為1的元素值為'z'
lset a 1 z


5b814401c1a1d.png

刪除

  • 刪除指定元素
    1.將列表中前count次出現(xiàn)的值為value的元素移除
    2.count > 0: 從頭往尾移除
    3.count < 0: 從尾往頭移除
    4.count = 0: 移除所有

lrem key count value
例6.1:向列表'a2'中加?元素'a'、'b'欺缘、'a'栋豫、'b'、'a'谚殊、'b'
lpush a2 a b a b a b


5b81444625b55.png

例6.2:從'a2'列表右側(cè)開(kāi)始刪除2個(gè)'b'
lrem a2 -2 b
例6.3:查看列表'py12'的所有元素
lrange a2 0 -1


5b814467ee00e.png

其他

  1. BLPOP key1 [key2 ] timeout
    移出并獲取列表的第一個(gè)元素丧鸯, 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止。
  2. BRPOP key1 [key2 ] timeout
    移出并獲取列表的最后一個(gè)元素嫩絮, 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止丛肢。
  3. BRPOPLPUSH source destination timeout
    從列表中彈出一個(gè)值,將彈出的元素插入到另外一個(gè)列表中并返回它剿干; 如果列表沒(méi)有元素會(huì)阻塞列表直到等待超時(shí)或發(fā)現(xiàn)可彈出元素為止蜂怎。
  4. LINDEX key index
    通過(guò)索引獲取列表中的元素
  5. LINSERT key BEFORE|AFTER pivot value
    在列表的元素前或者后插入元素
  6. LLEN key
    獲取列表長(zhǎng)度
  7. LPOP key
    移出并獲取列表的第一個(gè)元素
  8. LPUSH key value1 [value2]
    將一個(gè)或多個(gè)值插入到列表頭部
  9. LPUSHX key value
    將一個(gè)值插入到已存在的列表頭部
  10. LRANGE key start stop
    獲取列表指定范圍內(nèi)的元素
  11. LREM key count value
    移除列表元素
  12. LSET key index value
    通過(guò)索引設(shè)置列表元素的值
  13. LTRIM key start stop
    對(duì)一個(gè)列表進(jìn)行修剪(trim),就是說(shuō)置尔,讓列表只保留指定區(qū)間內(nèi)的元素杠步,不在指定區(qū)間之內(nèi)的元素都將被刪除。
  14. RPOP key
    移除并獲取列表最后一個(gè)元素
  15. RPOPLPUSH source destination
    移除列表的最后一個(gè)元素榜轿,并將該元素添加到另一個(gè)列表并返回
  16. RPUSH key value1 [value2]
    在列表中添加一個(gè)或多個(gè)值
  17. RPUSHX key value
    為已存在的列表添加值

set類(lèi)型

  • ?序集合
  • 元素為string類(lèi)型
  • 元素具有唯?性幽歼,不重復(fù)
  • 說(shuō)明:對(duì)于集合沒(méi)有修改操作

增加

  • 添加元素

sadd key member1 member2 ...
例1:向鍵'a3'的集合中添加元素'zhangsan'、'lisi'谬盐、'wangwu'
sadd a3 zhangsan sili wangwu


5b81463d30a0b.png

獲取

  • 返回所有的元素

smembers key
例2:獲取鍵'a3'的集合中所有元素
smembers a3


5b81467327edd.png
  • 獲取集合的成員數(shù)

SCARD key

  • 判斷 member 元素是否是集合 key 的成員

SISMEMBER key member

刪除

  • 刪除指定元素

srem key field

例3:刪除鍵'a3'的集合中元素'wangwu'
srem a3 wangwu


5b81469ace9fa.png
  • 移除并返回集合中的一個(gè)隨機(jī)元素

spop key

其他操作

  1. SADD key member1 [member2]
    向集合添加一個(gè)或多個(gè)成員

  2. SCARD key
    獲取集合的成員數(shù)

  3. SDIFF key1 [key2]
    返回給定所有集合的差集

  4. SDIFFSTORE destination key1 [key2]
    返回給定所有集合的差集并存儲(chǔ)在 destination 中

  5. SINTER key1 [key2]
    返回給定所有集合的交集

  6. SINTERSTORE destination key1 [key2]
    返回給定所有集合的交集并存儲(chǔ)在 destination 中

  7. SISMEMBER key member
    判斷 member 元素是否是集合 key 的成員

  8. SMEMBERS key
    返回集合中的所有成員

  9. SMOVE source destination member
    將 member 元素從 source 集合移動(dòng)到 destination 集合

  10. SPOP key
    移除并返回集合中的一個(gè)隨機(jī)元素

  11. SRANDMEMBER key [count]
    返回集合中一個(gè)或多個(gè)隨機(jī)數(shù)

  12. SREM key member1 [member2]
    移除集合中一個(gè)或多個(gè)成員

  13. SUNION key1 [key2]
    返回所有給定集合的并集

  14. SUNIONSTORE destination key1 [key2]
    所有給定集合的并集存儲(chǔ)在 destination 集合中

  15. SSCAN key cursor [MATCH pattern] [COUNT count]
    迭代集合中的元素

zset類(lèi)型

  • sorted set甸私,有序集合
  • 元素為string類(lèi)型
  • 元素具有唯?性,不重復(fù)
  • 每個(gè)元素都會(huì)關(guān)聯(lián)?個(gè)double類(lèi)型的score飞傀,表示權(quán)重皇型,通過(guò)權(quán)重將元素從?到?排序
  • 說(shuō)明:沒(méi)有修改操作

增加
添加

  • zadd key score1 member1 score2 member2 ...

例1:向鍵'a4'的集合中添加元素'lisi'泣刹、'wangwu'、'zhaoliu'犀被、'zhangsan'椅您,權(quán)重分別為4、5寡键、6掀泳、3
zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan

獲取

  • 返回指定范圍內(nèi)的元素
  • start、stop為元素的下標(biāo)索引
  • 索引從左側(cè)開(kāi)始西轩,第?個(gè)元素為0
  • 索引可以是負(fù)數(shù)员舵,表示從尾部開(kāi)始計(jì)數(shù),如-1表示最后?個(gè)元素

zrange key start stop
例2:獲取鍵'a4'的集合中所有元素
zrange a4 0 -1


5b814896c4218.png
  • 返回score值在min和max之間的成員

zrangebyscore key min max
例3:獲取鍵'a4'的集合中權(quán)限值在5和6之間的成員
zrangebyscore a4 5 6


5b8148f8765c9.png
  • 返回成員member的score值

zscore key member
例4:獲取鍵'a4'的集合中元素'zhangsan'的權(quán)重
zscore a4 zhangsan


5b8149225a8c1.png

刪除

  • 刪除指定元素

zrem key member1 member2 ...
例5:刪除集合'a4'中元素'zhangsan'
zrem a4 zhangsan


5b81494783d53.png
  • 刪除權(quán)重在指定范圍的元素

zremrangebyscore key min max
例6:刪除集合'a4'中權(quán)限在5藕畔、6之間的元素
zremrangebyscore a4 5 6


5b8149678fcf5.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末马僻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子注服,更是在濱河造成了極大的恐慌韭邓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溶弟,死亡現(xiàn)場(chǎng)離奇詭異女淑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)辜御,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)鸭你,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人擒权,你說(shuō)我怎么就攤上這事袱巨。” “怎么了碳抄?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵愉老,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我纳鼎,道長(zhǎng)俺夕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任贱鄙,我火速辦了婚禮劝贸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逗宁。我一直安慰自己映九,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布瞎颗。 她就那樣靜靜地躺著件甥,像睡著了一般捌议。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上引有,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天瓣颅,我揣著相機(jī)與錄音,去河邊找鬼譬正。 笑死宫补,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的曾我。 我是一名探鬼主播粉怕,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼抒巢!你這毒婦竟也來(lái)了贫贝?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛉谜,失蹤者是張志新(化名)和其女友劉穎稚晚,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體悦陋,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜈彼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年筑辨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俺驶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棍辕,死狀恐怖暮现,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情楚昭,我是刑警寧澤栖袋,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站抚太,受9級(jí)特大地震影響塘幅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尿贫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一电媳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧庆亡,春花似錦匾乓、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)娱局。三九已至,卻和暖如春咧七,著一層夾襖步出監(jiān)牢的瞬間衰齐,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工继阻, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留娇斩,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓穴翩,卻偏偏與公主長(zhǎng)得像犬第,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子芒帕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • NOSQL類(lèi)型簡(jiǎn)介鍵值對(duì):會(huì)使用到一個(gè)哈希表歉嗓,表中有一個(gè)特定的鍵和一個(gè)指針指向特定的數(shù)據(jù),如redis背蟆,volde...
    MicoCube閱讀 3,984評(píng)論 2 27
  • 轉(zhuǎn)載地址:http://gnucto.blog.51cto.com/3391516/998509 Redis與Me...
    Ddaidai閱讀 21,452評(píng)論 0 82
  • Nosql概述 在介紹Redis之前鉴分,首先先要介紹Nosql的概念。 互聯(lián)網(wǎng)架構(gòu)發(fā)展 在90年代的時(shí)候带膀,計(jì)算機(jī)訪問(wèn)...
    COKIDCC閱讀 689評(píng)論 0 1
  • 1 Redis介紹1.1 什么是NoSql為了解決高并發(fā)垛叨、高可擴(kuò)展伦糯、高可用、大數(shù)據(jù)存儲(chǔ)問(wèn)題而產(chǎn)生的數(shù)據(jù)庫(kù)解決方...
    克魯?shù)吕?/span>閱讀 5,295評(píng)論 0 36
  • 光亮一層層的過(guò)來(lái)攀過(guò)水草嗽元,抱住高樓的影白河里的魚(yú)都藏著連鱗片也不漏在兩座橋之間老釣手們把煙點(diǎn)起把網(wǎng)兜敛纲,木凳扎在岸邊...
    伯爵男主閱讀 448評(píng)論 0 3