3301. Redis - TutorialRedis
Tutorial for Redis
1. Redis
Redis is an open source, BSD licensed, advanced key-value store. It is often referred to as a data structure server, since the keys can contain strings, hashes, lists, sets and sorted sets. Redis is written in C.
Redis has three main peculiarities that sets it apart.
- Redis holds its database entirely in the memory, using the disk only for persistence.
- Redis has a relatively rich set of data types when compared to many key-value data stores.
- Redis can replicate data to any number of slaves.
2. Install Redis on Ubuntu
2.1 Install Redis
$sudo apt-get update
$sudo apt-get install redis-server
Open redis prompt.
$ redis-cli
redis 127.0.0.1:6379>
Test connection.
redis 127.0.0.1:6379> ping
PONG
Syntax for remote server.
$ redis-cli -h host -p port -a password
Example for connecting to remote redis server.
$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
2.2 Connect Redis installed in Ubuntu Virtual Machine
First, find the ip address of Ubuntu. Settings->Network, click the setting icon, see the ip address, eg. ‘192.168.182.129’.
Edit file /etc/redis/redis.conf in Ubuntu. Change bind from ‘127.0.0.1 ::1’ to ‘0.0.0.0 ::1’. Or directly comment out.
bind 127.0.0.1 ::1
Restart redis server.
sudo systemctl restart redis
Check if redis can be access with non-local ip address.
$ redis-cli -h 192.168.182.129
192.168.182.129:6379>ping
PONG
2.3 Redis Desktop Manager
Go to https://redisdesktop.com/download download and install Redis Desktop Manager.
2.4 Configuration
Syntax.
CONFIG GET CONFIG_SETTING_NAME
CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
Example.
redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
3. Date Type
3.1 Strings
Redis string is a sequence of bytes.
redis 127.0.0.1:6379> SET name "johnny"
OK
redis 127.0.0.1:6379> GET name
"johnny"
3.2 Hashes
Redis hash is a collection of key value pairs. Redis Hashes are maps between string fields and string values. Hence, they are used to represent objects
.
redis 127.0.0.1:6379> HMSET user:1 username johnny password 123456 email csgeek@mail.com
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "johnny"
3) "password"
4) "123456"
5) "email"
6) "csgeek@mail.com"
3.3 Lists
Redis Lists are simply lists of strings, sorted by insertion order. You can add elements to a Redis List on the head or on the tail.
redis 127.0.0.1:6379> lpush database redis
(integer) 1
redis 127.0.0.1:6379> lpush database mongodb
(integer) 2
redis 127.0.0.1:6379> lpush database mysql
(integer) 3
redis 127.0.0.1:6379> lrange database 0 10
1) "mysql"
2) "mongodb"
3) "redis"
3.4 Sets
Redis Sets are an unordered collection of strings.
redis 127.0.0.1:6379> sadd database redis
(integer) 1
redis 127.0.0.1:6379> sadd database mongodb
(integer) 1
redis 127.0.0.1:6379> sadd database mysql
(integer) 1
redis 127.0.0.1:6379> sadd database mysql
(integer) 0
redis 127.0.0.1:6379> smembers database
1) "mysql"
2) "mongodb"
3) "redis"
- mysql is added twice, however due to unique property of the set, it is added only once.
3.5 Sorted Sets
Redis Sorted Sets are similar to Redis Sets, non-repeating collections of Strings. The difference is, every member of a Sorted Set is associated with a score, that is used in order to take the sorted set ordered, from the smallest to the greatest score. While members are unique, the scores may be repeated.
redis 127.0.0.1:6379> zadd database 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd database 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd database 0 mysql
(integer) 1
redis 127.0.0.1:6379> zadd database 0 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000
1) "redis"
2) "mongodb"
3) "mysql"