An Introduction to REDIS NoSQL database
-
Upload
ali-masudianpour -
Category
Technology
-
view
3.840 -
download
0
Transcript of An Introduction to REDIS NoSQL database
1
REDIS SERVER
An Introduction to REDIS SERVER, an advanced key value database
By: Ali MasudianPour <[email protected]>
2
What REDIS is
● Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.
● REDIS– It stands for REmote DIctionary Server
3
Features
● not a plain key-value store, a data structures server● supporting different kind of values● Free and open source● Easy to user● Easy to learn
4
Supported Data Types
● Binary-safe strings.● Lists of binary-safe strings.● Sets of binary-safe strings, that are collection of unique unsorted
elements. ● Sorted sets, similar to Sets but where every element is
associated to a floating number score. The elements are taken sorted by score.
5
KEYS - VALUES
● In REDIS, Keys are binary safe– This means that you can use any binary sequence as key
● From String like 'foo' to the content of a JPEG file– REDIS keys accept empty
● In REDIS, Values– Can not be bigger than 512MB–
6
SET
● To set a value to a key we use SET statement– SET key value
● Example:– SET foo bar– In above example we told redis to set bar value to foo key
● To set string value we use double quotations– SET keyname “The string content of value”
7
GET
● To get a value from redis we use GET statement– GET keyname
● Example– GET foo // it will return bar– In above example we told redis to get foo key value.
8
INCR, INCRBY
● Automatic increment by REDIS– To use automatic increment of redis we use INCR
● Example:– Set counter 1
incr counter// Output wil be 2
● We can also use INCRBY – Set counter 1– Incr counter– // Output wil be 2– Incrby counter 10– //outpur will be 12
9
DECR, DECRBY
● In opposite of INCR and INCRBY redis contains DESC and DESCBY– Just like DECR and DECRBY
– Set counter 10decr counter// Output wil be 9decrby counter 5//output will be 4
10
EXPIRE and TTL
● In REDIS we can set keys to expire in a given and specific amount of time.– To do that we use EXPIRE command– Example
● Set foo bar● Expire foo 50
– To find out how many time a key have we use TTL command● For instance after 10 second of declaring foo key if we use TTL command the
output will be something like below:– Ttl foo
//40
11
LISTS
● To create a list use LPUSH or RPUSH. If a list already exists, LPUSH will add the given value to the beginning of the list and RPUSH will add it to the end.
● Redis lists contain the following commands– SORT
– RPUSH
– LPUSH
– LLEN
– LTRIM
– LRANGE
– LPOP
– RPOP
– BLPOP
– BRPOP
– And ...
12
LISTSredis 127.0.0.1:6379> lpush ages 10
(integer) 1
redis 127.0.0.1:6379> lpush ages 13
(integer) 2
redis 127.0.0.1:6379> lpush ages 12
(integer) 3
redis 127.0.0.1:6379> lpush ages 6
(integer) 4
redis 127.0.0.1:6379> LRANGE ages 0 3
1) "6"
2) "12"
3) "13"
4) "10"
redis 127.0.0.1:6379> sort ages
1) "6"
2) "10"
3) "12"
4) "13"
-----------------------------
redis 127.0.0.1:6379> lpop ages
"6"
redis 127.0.0.1:6379> rpop ages
"10"
redis 127.0.0.1:6379> LRANGE ages 0 10
1) "12"
2) "13"
redis 127.0.0.1:6379>
13
SETS● Sets are similar to lists but does not support duplication● Example:
– Add to sets● redis 127.0.0.1:6379> SADD names "Michael"
(integer) 1
redis 127.0.0.1:6379> SADD names "JOHN"
(integer) 1
redis 127.0.0.1:6379> SMEMBERS names
1) "JOHN"
2) "Michael"
redis 127.0.0.1:6379> ● SADD adds to set and SMEMMEBRS show the member of set
14
Lists
● Now, if you try to add another set member with JOHN value it will do nothing, because sets do not support duplication.
● Other useful commands for set– SADD, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER,
SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SMEMBERS, SRANDMEMBER.
15
HASHES
● Using a hash, you can assign values to fields in each key.● Common Commands in hashes are:
– HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL
16
Example of HASHESredis 127.0.0.1:6379> hset student name "Ali"
(integer) 1
redis 127.0.0.1:6379> hset student lastName "MasudianPour"
(integer) 1
redis 127.0.0.1:6379> hset student number 101222
(integer) 1
redis 127.0.0.1:6379> hget student name
"Ali"
redis 127.0.0.1:6379> hget student lastName
"MasudianPour"
redis 127.0.0.1:6379> HGETALL student
1) "name"
2) "Ali"
3) "lastName"
4) "MasudianPour"
5) "number"
6) "101222"
17
End
● This document is provided to be a little familiar with REDIS. I hope it help you to start working with REDIS.