An Introduction to REDIS NoSQL database

17
1 REDIS SERVER An Introduction to REDIS SERVER, an advanced key value database By: Ali MasudianPour <[email protected]>

Transcript of An Introduction to REDIS NoSQL database

Page 1: An Introduction to REDIS NoSQL database

1

REDIS SERVER

An Introduction to REDIS SERVER, an advanced key value database

By: Ali MasudianPour <[email protected]>

Page 2: An Introduction to REDIS NoSQL database

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

Page 3: An Introduction to REDIS NoSQL database

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

Page 4: An Introduction to REDIS NoSQL database

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.

Page 5: An Introduction to REDIS NoSQL database

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–

Page 6: An Introduction to REDIS NoSQL database

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”

Page 7: An Introduction to REDIS NoSQL database

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.

Page 8: An Introduction to REDIS NoSQL database

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

Page 9: An Introduction to REDIS NoSQL database

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

Page 10: An Introduction to REDIS NoSQL database

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

Page 11: An Introduction to REDIS NoSQL database

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 ...

Page 12: An Introduction to REDIS NoSQL database

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>

Page 13: An Introduction to REDIS NoSQL database

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

Page 14: An Introduction to REDIS NoSQL database

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.

Page 15: An Introduction to REDIS NoSQL database

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

Page 16: An Introduction to REDIS NoSQL database

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"

Page 17: An Introduction to REDIS NoSQL database

17

End

● This document is provided to be a little familiar with REDIS. I hope it help you to start working with REDIS.