Redis
Key-value in-memory data store used as a
- database
- cache
- streaming engine
- message broker
Install Redis 2.6.12 on Slackware64 14
SlackBuilds Redis page http://slackbuilds.org/repository/14.0/system/redis/.
Build SlackBuilds for Redis 2.6.12:
Built package for Slackware64 14: redis-2.6.12-x86_64-1_SBo.tgz
Install Redis 2.6.14 on Slackware 14
SlackBuilds Redis page http://slackbuilds.org/repository/14.0/system/redis/.
Build SlackBuilds for Redis 2.6.14:
Built package for Slackware 14: redis-2.6.14-i486-1_SBo.tgz
Start Redis service on Slackware
Run the following commands:
Manual start/stop:
It listens in port 6379 and stores it's data on /var/lib/redis/, as configured in /etc/redis.conf.
Tutorial The Little Redis Book
Tutorial in http://openmymind.net/redis.pdf.
Connect to a Redis server
To connect to a Redis server, the redis-cli command may be used.
Usage examples:
redis-cli -h <hostname> -p <port> -a <passwd>
- redis-cli -h 127.0.0.1 -p 6379 -a secretPass
Setting and getting keys
The basic anatomy of a command is:
<command> <key> <value>
To show all keys use keys *
To get the type of a key use type keyName
To set a key named unixcommand:bc with the value {command:'bc' , description:'bc - An arbitrary precision calculator language' , syntax:'bc [ -hlwsqv ] [long-options] [ file ... ]'} the command would be:
- set unixcommand:bc "{command:'bc' , description:'bc - An arbitrary precision calculator language' , syntax:'bc [ -hlwsqv ] [long-options] [ file ... ]'}"
To get the key value the command would be:
- get unixcommand:bc
Redis hash key
Command prefix H.
Set an hash key with multiple fields with values:
hmset <haskey> <field> <value> <field> <value> <field> <value> (...)
- hmset test:properties prop1 value1 prop2 value2 prop3 value3
Gets field values for an hash key:
hget <haskey> <field> <field <field> (...)
- hget test:properties prop1 prop3
Get all fields and values for an hash key:
hgetall <haskey>
- hgetall test:properties
Get fields for an hash key:
hkeys <haskey>
- hkeys test:properties
Get field for an hash key:
hkeys <haskey>
- hkeys test:properties
Delete field from an hash key:
hdel <haskey> field
- hdel test:properties prop2
Redis list
Command prefix L or R.
Examples:
- rpush list value
- rpop list
- rpush queueA "{'id':1,'task':'add','values':[1,2,3,4,5,6,7,8]}"
- rpop list value
- lpush lx "aaaaa"
- llen lx
- lindex lx 0
- lpush lx "bbbbb"
- lpush lx "ccccc"
- llen lx
- lindex lx 0
- lindex lx 1
- lindex lx 2
- lpop lx
- lpop lx
- lpop lx
- lpop lx
Redis sorted set
Command prefix Z. Only allow unique members values on the sorted set. When a existing member is added, the score is updated.
Examples:
- zadd sortedSetx 123 "{'key':'hello'}" #add member to the sorted set with score 123
- zcard sortedSetx #number of members in the sorted set sortedSetx
- zrangebyscore sortedSetx 100 150 # get members where the score is between 100 and 150
- zrange sortedSetx 0 0 #get the members between 0 and 1 index
- zrem sortedSetx "{'key':'hello'}" #removes the member in the sorted set
Python client install from pip
Python client install from source
1 python
2 import redis
3 r = redis.StrictRedis(host='localhost', port=6379, db=0)
4 # r = redis.Redis(host='localhost', port=6379, db=0)
5 r.rpush('queueA','test')
6 r.rpush('queueA','test2')
7 r.rpop('queueA')
8 r.rpop('queueA')
9 r.rpush('queueA', {'key':1234} )
10 x=r.pop('queueA')
11 #convert string to dictionary
12 import ast
13 dictx=ast.literal_eval(x)
14 dictx
15 dictx['key']
Install on FreeBSD 10.3