SlideShare una empresa de Scribd logo
1 de 88
Descargar para leer sin conexión
GETTING STARTED WITH
REDIS
INTRODUCTION TO REDIS
CreatedbyDanielKu
REDIS
is an open source, BSD licensed,
advanced key-valuestore.
Redis
FEATURES
DataTypes
Publish/Subscribe
Replication *
Persistence *
(Various)
INSTALLATION ON MAC
$brewinstallredis
Thanks, .brew
OTHER PLATFORMS ?
.Download
START SERVER
$redis-server/usr/local/etc/redis.conf
START SERVER AT LOGIN ON MAC
$ln-sfv/usr/local/opt/redis/*.plist~/Library/LaunchAgents
$launchctlload~/Library/LaunchAgents/homebrew.mxcl.redis.plist
START SHELL CLIENT
$redis-cli
127.0.0.1:6379>
CONNECTION COMMANDS
PING
ECHOmessage
QUIT
127.0.0.1:6379>ping
PONG
127.0.0.1:6379>echohello
"hello"
127.0.0.1:6379>quit
DATABASE COMMANDS
SELECTindex
127.0.0.1:6379>select1
OK
127.0.0.1:6379[1]>select15
OK
127.0.0.1:6379[15]>select16//error
(error)ERRinvalidDBindex
127.0.0.1:6379[16]>select0
OK
DATABASES
Bydefault, there are 16 databases.
Bydefault, selects database 0.
STRING COMMANDS
SETkeyvalue
GETkey
127.0.0.1:6379>setname"Daniel"
OK
127.0.0.1:6379>getname
"Daniel"
APPENDkeyvalue
STRLENkey
127.0.0.1:6379>getname
"Daniel"
127.0.0.1:6379>appendname"Ku"
(integer)9
127.0.0.1:6379>getname
"DanielKu"
127.0.0.1:6379>strlenname
(integer)9
GETRANGEkeystartend
SETRANGEkeyoffsetvalue
127.0.0.1:6379>getname
"DanielKu"
127.0.0.1:6379>getrangename47
"elK"
127.0.0.1:6379>setrangename7Kim
(integer)10
127.0.0.1:6379>getname
"DanielKim"
GETSETkeyvalue
127.0.0.1:6379>getname
"DanielKim"
127.0.0.1:6379>getsetname"JennyLee"
"DanielKim"
127.0.0.1:6379>getname
"JennyLee"
MSETkeyvalue[keyvalue...]
MGETkey[key...]
127.0.0.1:6379>msetname1"DanielKu"name2"JennyLee"
OK
127.0.0.1:6379>mgetname1name2
1)"DanielKu"
2)"JennyLee"
M-= Multiple
INCRkey
DECRkey
127.0.0.1:6379>setage30
OK
127.0.0.1:6379>getage
"30"
127.0.0.1:6379>incrage
(integer)31
127.0.0.1:6379>getage
"31"
127.0.0.1:6379>decrage
(integer)30
127.0.0.1:6379>getage
"30"
INCRBYkeyincrement
DECRBYkeydecrement
127.0.0.1:6379>getage
"30"
127.0.0.1:6379>incrbyage10
(integer)40
127.0.0.1:6379>incrbyage10
(integer)50
127.0.0.1:6379>decrbyage10
(integer)40
127.0.0.1:6379>getage
"40"
INCRBYFLOATkeyincrement
127.0.0.1:6379>getage
"40"
127.0.0.1:6379>incrbyage1.5
(error)ERRvalueisnotanintegeroroutofrange
127.0.0.1:6379>incrbyfloatage1.5
"41.5"
127.0.0.1:6379>getage
"41.5"
127.0.0.1:6379>incrage
(error)ERRvalueisnotanintegeroroutofrange
SETEXkeysecondsvalue
PSETEXkeymillisvalue
127.0.0.1:6379>getname
"JennyLee"
127.0.0.1:6379>setexname5"DanielKu"
OK
127.0.0.1:6379>getname
"DanielKu"
127.0.0.1:6379>getname//after5seconds
(nil)
127.0.0.1:6379>psetexname5000"DanielKu"
OK
127.0.0.1:6379>getname
"DanielKu"
127.0.0.1:6379>getname//after5000milliseconds
(nil)
-EX = EXpire
SETNXkeyvalue
127.0.0.1:6379>getname
(nil)
127.0.0.1:6379>setnxname"DanielKu"
(integer)1
127.0.0.1:6379>getname
"DanielKu"
127.0.0.1:6379>setnxname"JennyLee"
(integer)0
127.0.0.1:6379>getname
"DanielKu"
-NX = NoteXist
MSETNXkeyvalue[keyvalue...]
127.0.0.1:6379>msetnxx1y2
(integer)1
127.0.0.1:6379>mgetxy
1)"1"
2)"2"
127.0.0.1:6379>msetnxx3z4
(integer)0
127.0.0.1:6379>mgetxyz
1)"1"
2)"2"
3)(nil)
LIST COMMANDS
LPUSHkeyvalue[value...]
LRANGEkeystartstop
127.0.0.1:6379>lpushlistabc
(integer)3
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"b"
3)"a"
127.0.0.1:6379>lpushlistd
(integer)4
127.0.0.1:6379>lrangelist0-1
1)"d"
2)"c"
3)"b"
4)"a"
127.0.0.1:6379>lrangelist23
1)"b"
2)"a"
L-= List&Left
RPUSHkeyvalue[value...]
127.0.0.1:6379>lrangelist0-1
1)"d"
2)"c"
3)"b"
4)"a"
127.0.0.1:6379>rpushlistz
(integer)5
127.0.0.1:6379>lrangelist0-1
1)"d"
2)"c"
3)"b"
4)"a"
5)"z"
R-= Right
LPOPkey
RPOPkey
LLENkey
127.0.0.1:6379>lpoplist
"d"
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"b"
3)"a"
4)"z"
127.0.0.1:6379>rpoplist
"z"
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"b"
3)"a"
127.0.0.1:6379>llenlist
(integer)3
LREMkeycountvalue
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"b"
3)"a"
127.0.0.1:6379>lremlist1a
(integer)1
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"b"
127.0.0.1:6379>lremlist1a
(integer)0
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"b"
127.0.0.1:6379>lpushlistcbab
(integer)6
127.0.0.1:6379>lrangelist0-1
1)"b"
2)"a"
3)"b"
4)"c"
5)"c"
6)"b"
127.0.0.1:6379>lremlist2b
(integer)2
127.0.0.1:6379>lrangelist0-1
1)"a"
2)"c"
3)"c"
4)"b"
127.0.0.1:6379>lpushlistc
(integer)5
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"a"
3)"c"
4)"c"
5)"b"
127.0.0.1:6379>lremlist-2c
(integer)2
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"a"
3)"b"
LINSERTkeyBEFORE|AFTERpivotvalue
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"a"
3)"b"
127.0.0.1:6379>linsertlistbeforeax
(integer)4
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"x"
3)"a"
4)"b"
127.0.0.1:6379>linsertlistafteray
(integer)5
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"x"
3)"a"
4)"y"
5)"b"
LINDEXkeyindex
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"x"
3)"a"
4)"y"
5)"b"
127.0.0.1:6379>lindexlist0
"c"
127.0.0.1:6379>lindexlist-1
"b"
127.0.0.1:6379>lindexlist3
"y"
LSETkeyindexvalue
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"x"
3)"a"
4)"y"
5)"b"
127.0.0.1:6379>lsetlist1X
OK
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"X"
3)"a"
4)"y"
5)"b"
LTRIMkeystartstop
127.0.0.1:6379>lrangelist0-1
1)"c"
2)"X"
3)"a"
4)"y"
5)"b"
127.0.0.1:6379>ltrimlist23
OK
127.0.0.1:6379>lrangelist0-1
1)"a"
2)"y"
RPOPLPUSHsourcedestination
127.0.0.1:6379>lrangelist0-1
1)"a"
2)"y"
127.0.0.1:6379>rpoplpushlistlist2
"y"
127.0.0.1:6379>lrangelist0-1
1)"a"
127.0.0.1:6379>lrangelist20-1
1)"y"
127.0.0.1:6379>rpoplpushlistlist2
"a"
127.0.0.1:6379>lrangelist0-1
(emptylistorset)
127.0.0.1:6379>lrangelist20-1
1)"a"
2)"y"
LPUSHXkeyvalue
RPUSHXkeyvalue
127.0.0.1:6379>lrangelist0-1
(emptylistorset)
127.0.0.1:6379>lrangelist20-1
1)"a"
2)"y"
127.0.0.1:6379>lpushxlista
(integer)0
127.0.0.1:6379>lrangelist0-1
(emptylistorset)
127.0.0.1:6379>lpushxlist2b
(integer)3
127.0.0.1:6379>lrangelist20-1
1)"b"
2)"a"
3)"y"
-X = eXist
BLPOPkey[key...]timeout
BRPOPkey[key...]timeout
Client#1
127.0.0.1:6379>lrangenames0-1
(emptylistorset)
127.0.0.1:6379>lpushnamesdaniel
(integer)1
127.0.0.1:6379>lrangenames0-1
1)"daniel"
Client#2
127.0.0.1:6379>blpopnames1
1)"names"
2)"daniel"
Client#1
127.0.0.1:6379>lrangenames0-1
(emptylistorset)
B-= Blocking
Client#1
127.0.0.1:6379>blpopnames5//waitfor5seconds
(nil)
(5.24s)
127.0.0.1:6379>blpopnames5
Client#2
127.0.0.1:6379>lpushnamesdaniel
(integer)1
Client#1
1)"names"
2)"daniel"
(2.47s)
Client#1
127.0.0.1:6379>blpopnamesnames25
Client#2
127.0.0.1:6379>lpushnames2daniel
(integer)1
Client#1
1)"names2"
2)"daniel"
(3.18s)
BRPOPLPUSHsourcedestinationtimeout
Client#1
127.0.0.1:6379>lrangenames0-1
(emptylistorset)
127.0.0.1:6379>lrangenames20-1
(emptylistorset)
127.0.0.1:6379>brpoplpushnamesnames25
Client#2
127.0.0.1:6379>lpushnamesdaniel
(integer)1
Client#1
"daniel"
(2.03s)
127.0.0.1:6379>lrangenames0-1
(emptylistorset)
127.0.0.1:6379>lrangenames20-1
1)"daniel"
HASH COMMANDS
HSETkeyfieldvalue
HGETkeyfield
HGETALLkey
127.0.0.1:6379>hsetobjectnamedaniel
(integer)1
127.0.0.1:6379>hsetobjectage34
(integer)1
127.0.0.1:6379>hgetobjectname
"daniel"
127.0.0.1:6379>hgetobjectage
"34"
127.0.0.1:6379>hgetallobject
1)"name"
2)"daniel"
3)"age"
4)"34"
H-= Hash
HKEYSkey
HVALSkey
HEXISTSkeyfield
HLENkey
127.0.0.1:6379>hkeysobject
1)"name"
2)"age"
127.0.0.1:6379>hvalsobject
1)"daniel"
2)"34"
127.0.0.1:6379>hexistsobjectname
(integer)1
127.0.0.1:6379>hexistsobjectjob
(integer)0
127.0.0.1:6379>hlenobject
(integer)2
HINCRBYkeyfieldincrement
HINCRBYFLOATkeyfieldincrement
127.0.0.1:6379>hincrbyobjectage1
(integer)35
127.0.0.1:6379>hincrbyobjectage-2
(integer)33
127.0.0.1:6379>hgetallobject
1)"name"
2)"daniel"
3)"age"
4)"33"
HMSETkeyfieldvalue[fieldvalue...]
HMGETkeyfield[field...]
127.0.0.1:6379>hmsetobject2f1xf2y
OK
127.0.0.1:6379>hmgetobject2f1f2
1)"x"
2)"y"
127.0.0.1:6379>hgetallobject2
1)"f1"
2)"x"
3)"f2"
4)"y"
HSETNXkeyfieldvalue
127.0.0.1:6379>hsetnxobject2f3z
(integer)1
127.0.0.1:6379>hsetnxobject2f3Z
(integer)0
127.0.0.1:6379>hgetallobject2
1)"f1"
2)"x"
3)"f2"
4)"y"
5)"f3"
6)"z"
HDELkeyfield[field...]
127.0.0.1:6379>hdelobject2f3
(integer)1
127.0.0.1:6379>hdelobject2f2
(integer)1
127.0.0.1:6379>hgetallobject2
1)"f1"
2)"x"
SET COMMANDS
SADDkeymember[member...]
SMEMBERSkey
127.0.0.1:6379>saddsetone
(integer)1
127.0.0.1:6379>saddsettwothree
(integer)2
127.0.0.1:6379>smembersset
1)"one"
2)"three"
3)"two"
S-= Set
SREMkeymember[member...]
SISMEMBERkeymember
SCARDkey
127.0.0.1:6379>sremsetthree
(integer)1
127.0.0.1:6379>smembersset
1)"one"
2)"two"
127.0.0.1:6379>sismembersetone
(integer)1
127.0.0.1:6379>sismembersetthree
(integer)0
127.0.0.1:6379>scardset
(integer)2
SRANDMEMBERkey
127.0.0.1:6379>saddsetthree
(integer)1
127.0.0.1:6379>smembersset
1)"one"
2)"three"
3)"two"
127.0.0.1:6379>srandmemberset
"two"
127.0.0.1:6379>srandmemberset
"one"
127.0.0.1:6379>srandmemberset
"two"
127.0.0.1:6379>srandmemberset
"two"
127.0.0.1:6379>srandmemberset
"three"
SPOPkey
127.0.0.1:6379>spopset
"one"
127.0.0.1:6379>spopset
"three"
127.0.0.1:6379>smembersset
1)"two"
127.0.0.1:6379>spopset
"two"
127.0.0.1:6379>smembersset
(emptylistorset)
SDIFFkey[key...]
SDIFFSTOREdestinationkey[key...]
127.0.0.1:6379>saddset1onetwothree
(integer)3
127.0.0.1:6379>saddset2onetwofourfive
(integer)4
127.0.0.1:6379>sdiffset1set2
1)"three"
127.0.0.1:6379>sdiffset2set1
1)"four"
2)"five"
127.0.0.1:6379>sdiffstoreset3set1set2
(integer)1
127.0.0.1:6379>smembersset3
1)"three"
SINTERkey[key...]
SINTERSTOREdestinationkey[key...]
SUNIONkey[key...]
SUNIONSTOREdestinationkey[key...]
127.0.0.1:6379>sinterset1set2
1)"one"
2)"two"
127.0.0.1:6379>sunionset1set2
1)"two"
2)"one"
3)"four"
4)"five"
5)"three"
SMOVEsourcedestinationmember
127.0.0.1:6379>smoveset1set2three
(integer)1
127.0.0.1:6379>smembersset1
1)"one"
2)"two"
127.0.0.1:6379>smembersset2
1)"four"
2)"one"
3)"five"
4)"two"
5)"three"
SORTED SET COMMANDS
ZADDkeyscoremember[scoremember...]
ZCARDkey
127.0.0.1:6379>zaddzset10one
(integer)1
127.0.0.1:6379>zaddzset20two30three
(integer)2
127.0.0.1:6379>zcardzset
(integer)3
Z-= Sorted Set
ZSCOREkeymember
ZCOUNTkeyminmax
127.0.0.1:6379>zscorezsetone
"10"
127.0.0.1:6379>zscorezsettwo
"20"
127.0.0.1:6379>zcountzset-inf+inf
(integer)3
127.0.0.1:6379>zcountzset1020
(integer)2
127.0.0.1:6379>zcountzset10(20
(integer)1
Z-= Sorted Set
ZRANKkeymember
ZREVRANKkeymember
127.0.0.1:6379>zrankzsetone
(integer)0
127.0.0.1:6379>zrankzsetthree
(integer)2
127.0.0.1:6379>zrevrankzsetone
(integer)2
127.0.0.1:6379>zrevrankzsetthree
(integer)0
ZRANGEkeystartstop[WITHSCORES]
ZREVRANGEkeystartstop[WITHSCORES]
127.0.0.1:6379>zrangezset0-1
1)"one"
2)"two"
3)"three"
127.0.0.1:6379>zrangezset0-1withscores
1)"one"
2)"10"
3)"two"
4)"20"
5)"three"
6)"30"
127.0.0.1:6379>zrevrangezset01withscores
1)"three"
2)"30"
3)"two"
4)"20"
ZRANGEBYSCOREkeyminmax[WITHSCORES][LIMIToffsetcount]
ZREVRANGEBYSCOREkeyminmax[WITHSCORES][LIMIToffsetcount]
127.0.0.1:6379>zrangebyscorezset2030
1)"two"
2)"three"
127.0.0.1:6379>zrangebyscorezset(2030withscores
1)"three"
2)"30"
127.0.0.1:6379>zrevrangebyscorezset30(10withscores
1)"three"
2)"30"
3)"two"
4)"20"
127.0.0.1:6379>zrevrangebyscorezset+inf-infwithscoreslimit21
1)"one"
2)"10"
ZINCRBYkeyincrementmember
ZREMkeymember[member...]
127.0.0.1:6379>zincrbyzset5two
"25"
127.0.0.1:6379>zscorezsettwo
"25"
127.0.0.1:6379>zremzsetthree
(integer)1
127.0.0.1:6379>zrangezset0-1withscores
1)"one"
2)"10"
3)"two"
4)"25"
ZREMRANGEBYSCOREkeyminmax
ZREMRANGEBYRANKkeyminmax
127.0.0.1:6379>zremrangebyscorezset1020
(integer)1
127.0.0.1:6379>zrangezset0-1withscores
1)"two"
2)"25"
127.0.0.1:6379>zremrangebyrankzset0-1
(integer)1
127.0.0.1:6379>zrangezset0-1withscores
(emptylistorset)
KEYS COMMANDS
KEYSpatten
127.0.0.1:6379>keys*
1)"set2"
2)"set3"
3)"object2"
4)"name1"
5)"x"
6)"object"
7)"age"
8)"list2"
9)"name2"
10)"name"
11)"y"
12)"set1"
13)"names2"
127.0.0.1:6379>keysname*
1)"name1"
2)"name2"
3)"name"
4)"names2"
127.0.0.1:6379>keysset*
1)"set2"
2)"set3"
3)"set1"
EXISTSkey
TYPEkey
127.0.0.1:6379>existsname
(integer)1
127.0.0.1:6379>existsset
(integer)0
127.0.0.1:6379>typename
string
127.0.0.1:6379>typeage
string
127.0.0.1:6379>typeset1
set
127.0.0.1:6379>typelist2
list
DELkey[key...]
127.0.0.1:6379>delxy
(integer)2
127.0.0.1:6379>keys*
1)"set2"
2)"set3"
3)"object2"
4)"list"
5)"name1"
6)"object"
7)"age"
8)"name2"
9)"name"
10)"set1"
11)"names2"
RENAMEkeynewkey
RENAMENXkeynewkey
127.0.0.1:6379>keyslist*
1)"list2"
127.0.0.1:6379>renamelist2list
OK
127.0.0.1:6379>keyslist*
1)"list"
127.0.0.1:6379>keysname*
1)"name1"
2)"names2"
3)"name2"
4)"name"
127.0.0.1:6379>renamenxname2name
(integer)0
127.0.0.1:6379>renamenxnames2names
(integer)1
127.0.0.1:6379>keysname*
1)"name1"
2)"names"
3)"name2"
4)"name"
MOVEkeydb
127.0.0.1:6379>keysname*
1)"name1"
2)"names"
3)"name2"
4)"name"
127.0.0.1:6379>movename1
(integer)1
127.0.0.1:6379>keysname*
1)"name1"
2)"names"
3)"name2"
127.0.0.1:6379>select1
OK
127.0.0.1:6379[1]>keysname*
1)"name"
127.0.0.1:6379[1]>select0
OK
RANDOMKEY
127.0.0.1:6379>randomkey
"set2"
127.0.0.1:6379>randomkey
"name1"
127.0.0.1:6379>randomkey
"list"
127.0.0.1:6379>randomkey
"name2"
127.0.0.1:6379>randomkey
"age"
127.0.0.1:6379>randomkey
"object2"
127.0.0.1:6379>randomkey
"set1"
EXPIREkeyseconds
PEXPIREkeymillis
EXPIREATkeytimestamp
PEXPIREATkeymillis-timestamp
127.0.0.1:6379>expirename15
(integer)1
127.0.0.1:6379>getname1
"DanielKu"
127.0.0.1:6379>getname1//after5seconds
(nil)
127.0.0.1:6379>pexpirename25000
(integer)1
127.0.0.1:6379>getname2
"JennyLee"
127.0.0.1:6379>getname2//after5000seconds
(nil)
TTLkey
PTTLkey
127.0.0.1:6379>setage34
OK
127.0.0.1:6379>ttlage
(integer)-1
127.0.0.1:6379>expireage5
(integer)1
127.0.0.1:6379>ttlage
(integer)4
127.0.0.1:6379>pttlage
(integer)1720
127.0.0.1:6379>ttlage
(integer)-2
PERSISTkey
127.0.0.1:6379>setnameDaniel
OK
127.0.0.1:6379>expirename5
(integer)1
127.0.0.1:6379>ttlname
(integer)3
127.0.0.1:6379>persistname
(integer)1
127.0.0.1:6379>ttlname
(integer)-1
127.0.0.1:6379>getname
"Daniel"
PUBLISH/SUBSCRIBE COMMANDS
PUBLISHchannelmessage
SUBSCRIBEchannel[channel...]
Client#1
127.0.0.1:6379>subscribechannel1
Readingmessages...(pressCtrl-Ctoquit)
1)"subscribe"
2)"channel1"
3)(integer)1
Client#2
127.0.0.1:6379>publishchannel1"Hello"
(integer)1
Client#1
1)"message"
2)"channel1"
3)"Hello"
PSUBSCRIBEpattern[pattern...]
Client#1
127.0.0.1:6379>psubscribechannel*
Readingmessages...(pressCtrl-Ctoquit)
1)"psubscribe"
2)"channel*"
3)(integer)1
Client#2
127.0.0.1:6379>publishchannel1Hi
(integer)2
Client#1
1)"pmessage"
2)"channel*"
3)"channel1"
4)"Hi"
Client#2
127.0.0.1:6379>publishchannel2Hello
(integer)2
Client#1
1)"pmessage"
2)"channel*"
3)"channel2"
4)"Hello"
UNSUBSCRIBE[channel[channel...]]
PUNSUBSCRIBE[pattern[pattern...]]
NotApplicable in redis-cli
TRANSACTIONS COMMANDS
MULTI
EXEC
127.0.0.1:6379>multi
OK
127.0.0.1:6379>setname"Daniel"
QUEUED
127.0.0.1:6379>setage20
QUEUED
127.0.0.1:6379>exec
1)OK
2)OK
127.0.0.1:6379>mgetnameage
1)"Daniel"
2)"20"
127.0.0.1:6379>multi
OK
127.0.0.1:6379>incrname
QUEUED
127.0.0.1:6379>incrage
QUEUED
127.0.0.1:6379>exec
1)(error)ERRvalueisnotanintegeroroutofrange
2)(integer)21
127.0.0.1:6379>mgetnameage
1)"Daniel"
2)"21"
DISCARD
127.0.0.1:6379>multi
OK
127.0.0.1:6379>setname"Daniel"
QUEUED
127.0.0.1:6379>setage30
QUEUED
127.0.0.1:6379>discard
OK
NODE.JS DRIVER FOR REDIS
https://github.com/mranney/node_redis
$npminstallhiredisredis
SOCKET.IO
http://socket.io/
$npminstallsocket.io
$bowerinstallsocket.io-client
EXAMPLE
https://github.com/kjunine/redis-samples
REFERENCES
Tuts+ Premium: Redis Essential
대용량서버구축을위한Memcached와Redis
11 Common Web Use Cases Solved In Redis
THE END
THANKS.

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Docker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in PragueDocker and friends at Linux Days 2014 in Prague
Docker and friends at Linux Days 2014 in Prague
 
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
Linux Training For Beginners | Linux Administration Tutorial | Introduction T...
 
Snort296x centos6x 2
Snort296x centos6x 2Snort296x centos6x 2
Snort296x centos6x 2
 
Lessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containersLessons from running potentially malicious code inside Docker containers
Lessons from running potentially malicious code inside Docker containers
 
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
Hadoop 2.0 cluster setup on ubuntu 14.04 (64 bit)
 
CoreOS: Control Your Fleet
CoreOS: Control Your FleetCoreOS: Control Your Fleet
CoreOS: Control Your Fleet
 
Building a Virtualized Continuum with Intel(r) Clear Containers
Building a Virtualized Continuum with Intel(r) Clear ContainersBuilding a Virtualized Continuum with Intel(r) Clear Containers
Building a Virtualized Continuum with Intel(r) Clear Containers
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay Networks
 
Understanding docker networking
Understanding docker networkingUnderstanding docker networking
Understanding docker networking
 
BuildStuff.LT 2018 InSpec Workshop
BuildStuff.LT 2018 InSpec WorkshopBuildStuff.LT 2018 InSpec Workshop
BuildStuff.LT 2018 InSpec Workshop
 
9i hp relnotes
9i hp relnotes9i hp relnotes
9i hp relnotes
 
Hadoop Cluster - Basic OS Setup Insights
Hadoop Cluster - Basic OS Setup InsightsHadoop Cluster - Basic OS Setup Insights
Hadoop Cluster - Basic OS Setup Insights
 
DevOpsDays InSpec Workshop
DevOpsDays InSpec WorkshopDevOpsDays InSpec Workshop
DevOpsDays InSpec Workshop
 
Its3 Drupal
Its3 DrupalIts3 Drupal
Its3 Drupal
 
Deep Dive in Docker Overlay Networks
Deep Dive in Docker Overlay NetworksDeep Dive in Docker Overlay Networks
Deep Dive in Docker Overlay Networks
 
High Availability Server with DRBD in linux
High Availability Server with DRBD in linuxHigh Availability Server with DRBD in linux
High Availability Server with DRBD in linux
 
Running High Performance and Fault Tolerant Elasticsearch Clusters on Docker
Running High Performance and Fault Tolerant Elasticsearch Clusters on DockerRunning High Performance and Fault Tolerant Elasticsearch Clusters on Docker
Running High Performance and Fault Tolerant Elasticsearch Clusters on Docker
 
CoreOS intro
CoreOS introCoreOS intro
CoreOS intro
 
Chef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureChef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructure
 
InSpec Workshop DevSecCon 2017
InSpec Workshop DevSecCon 2017InSpec Workshop DevSecCon 2017
InSpec Workshop DevSecCon 2017
 

Destacado

Destacado (7)

Google Analytics
Google AnalyticsGoogle Analytics
Google Analytics
 
MeaNstack on Docker
MeaNstack on DockerMeaNstack on Docker
MeaNstack on Docker
 
Deploying an application with Chef and Docker
Deploying an application with Chef and DockerDeploying an application with Chef and Docker
Deploying an application with Chef and Docker
 
Object-oriented Javascript
Object-oriented JavascriptObject-oriented Javascript
Object-oriented Javascript
 
Indices APIs - Elasticsearch Reference
Indices APIs - Elasticsearch ReferenceIndices APIs - Elasticsearch Reference
Indices APIs - Elasticsearch Reference
 
Utilizing Bluebird Promises
Utilizing Bluebird PromisesUtilizing Bluebird Promises
Utilizing Bluebird Promises
 
Promise and Bluebird
Promise and BluebirdPromise and Bluebird
Promise and Bluebird
 

Similar a Getting Started with Redis

Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10
Sean Hull
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
enpit GmbH & Co. KG
 
Ahmad-debian
Ahmad-debianAhmad-debian
Ahmad-debian
syaif-sae
 
quickguide-einnovator-10-redis-admin
quickguide-einnovator-10-redis-adminquickguide-einnovator-10-redis-admin
quickguide-einnovator-10-redis-admin
jorgesimao71
 

Similar a Getting Started with Redis (20)

Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)Running Docker in Development & Production (#ndcoslo 2015)
Running Docker in Development & Production (#ndcoslo 2015)
 
2015.10.05 Updated > Network Device Development - Part 1: Switch
2015.10.05 Updated > Network Device Development - Part 1: Switch2015.10.05 Updated > Network Device Development - Part 1: Switch
2015.10.05 Updated > Network Device Development - Part 1: Switch
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
 
Docker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak PeekDocker for Web Developers: A Sneak Peek
Docker for Web Developers: A Sneak Peek
 
Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10Oreilly Webcast 01 19 10
Oreilly Webcast 01 19 10
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
PuppetConf 2016: The Challenges with Container Configuration – David Lutterko...
 
Challenges of container configuration
Challenges of container configurationChallenges of container configuration
Challenges of container configuration
 
ERP System Implementation Kubernetes Cluster with Sticky Sessions
ERP System Implementation Kubernetes Cluster with Sticky Sessions ERP System Implementation Kubernetes Cluster with Sticky Sessions
ERP System Implementation Kubernetes Cluster with Sticky Sessions
 
Linux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPSLinux Containers From Scratch: Makfile MicroVPS
Linux Containers From Scratch: Makfile MicroVPS
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
 
Ahmad-debian
Ahmad-debianAhmad-debian
Ahmad-debian
 
Introduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group CologneIntroduction to Docker & CoreOS - Symfony User Group Cologne
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
quickguide-einnovator-10-redis-admin
quickguide-einnovator-10-redis-adminquickguide-einnovator-10-redis-admin
quickguide-einnovator-10-redis-admin
 
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-managementPercona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT:mysql-security-privileges-and-user-management
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 
Docker, the Future of DevOps
Docker, the Future of DevOpsDocker, the Future of DevOps
Docker, the Future of DevOps
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
Docker intro
Docker introDocker intro
Docker intro
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Último (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Getting Started with Redis