SlideShare una empresa de Scribd logo
1 de 15
Redis
Installing
Basics
Data structures
Pseudo Multi Key Queries
References and Indexes
Round Trips and Pipelining
Transactions
Keys Anti pattern, Use SCAN
Expire, Pub-Sub
Monitor, Sort
Administration
A few commands
Big O
Reference
iNSTALLING
• Download redis-2.8.7.tar.gz, untar
• $ make $ make test $ cd src
• $ redis-server #server accepts connections on port6379
• $ redis-cli
• $$ info
• $ redis-benchmark
basics
• In-memory persistent key-value store 5 data structures
• $select 1 # many databases
• $ set users:leto '{"name": "leto", "planet": "dune", "likes": ["spice"]}’ #
Every data struct has key eg users:leto
• $ get users:leto # Values are arbitrary byte arrays that Redis doesn’t
care about
Data Structures
• Strings $strlen $getrange $append
• Hashes $hset users:goku powerlevel 9000
• Lists $ lpush newusers goku
• Sets $sadd friends:leto ghanima paul chani jessica
• Sortd Sets $ zadd friends:duncan 70 ghanima 95 paul 95 chani 75
jessica 1 vladimir
Pseudo Multi Key Queries
• $set users:9001 '{"id": 9001, "email": "leto@dune.gov", ...}’
• $hset users:lookup:email leto@dune.gov 9001
• $get users:9001
• $id = redis.hget('users:lookup:email' , 'leto@dune.gov' ) # ruby
• $user = redis.get("users:#{id}" ) # ruby
References and Indexes
• $sadd friends:leto ghanima paul chani jessica
• $sadd friends_of:chani leto paul
• # having to manually deal with references in Redis is
unfortunate.
Round Trips and Pipelining
• #Redis also supports pipelining. Normally when a
client sends a request to Redis it waits for the reply
before sending the next request. With pipelining you
can send a number of requests without waiting for
their responses.
Transactions
• $multi
• $hincrby groups:1percent balance -9000000000
• $hincrby groups:99percent balance 9000000000
• $exec # Or use command discard
• $ redis.watch('powerlevel' ) #ruby
• $ current = redis.get('powerlevel' ) #ruby
• $ redis.multi() #ruby
• $ redis.set('powerlevel' , current + 1) #ruby
• $ redis.exec() #ruby
Keys Anti pattern, Use
SCAN
• $ keys bug:1233:*
• #command takes a pattern and finds all the matching keys
• #Should never be used in production code. Linear scan through all the
keys.
• Better:
• $hset bugs:1233 1 '{"id":1, "account": 1233, "subject": "..."}’
• $hset bugs:1233 2 '{"id":2, "account": 1233, "subject": "..."}’
• $ scan 0 match bugs:* count 20 $ hscan $sscan $zscan
Expire, Pub-Sub
• $expire pages:about 30
• $ ttl pages:about
• $ persist pages:about
• $ setex pages:about 30 '<h1>about us</h1>....’
• $ subscribe warnings $unsubscribe $punsubscribe
• $ publish warnings "it's over 9000!” $psubscribe warnings:*)
• $blpop $brpop
Monitor, Sort
• $ monitor
• $ config set slowlog-log-slower-than 0
• $ slowlog $ slowlog len
• $ sort users:leto:guesses
• $ sort friends:ghanima limit 0 3 desc alpha
• $ sort watch:leto by severity:* desc
• $ sort watch:leto by bug:*->priority get bug:*->details
• $ sort watch:leto by bug:*->priority get bug:*->details store
watch_by_priority:leto
Administration
• $ config get *log* # http://download.redis.io/redis-stable/redis.conf
• $ requirepass $ auth password
• $ rename-command FLUSHALL
1041285018a942a4922cbf76623b741e
• $ slaveof # Replication
A few commands
• Auth, echo, ping, quit, select
• Del, dump, exists, expire, expireat, keys, migrate, move, object, persi
st, pexpire, pexpireat, pttl, randomkey, rename, renamenx, restore, so
rt, ttl, type, scan
• Append, bitcount, bitop, bitops, decr, decrby, get, getbit, getrange, get
set, inc, incrby, incrbyfloat, mget, mset, msetnx, psetex, set, setbit, set
ex, setnx, setrange, strlen
Big O
• O(1) sismember
• O(log(N) zadd ltrim
• O(log(N)+M) zremrangebyscore
• O(N+M*log(M)) sort
• O(Nˆ2) and O(CˆN) no commands
reference
• http://github.com/karlseguin/the-little-redis-book

Más contenido relacionado

La actualidad más candente

HappyKardashian.com for #FVCP
HappyKardashian.com for #FVCPHappyKardashian.com for #FVCP
HappyKardashian.com for #FVCPEric Michalsen
 
PuppetCamp SEA 1 - Version Control with Puppet
PuppetCamp SEA 1 - Version Control with PuppetPuppetCamp SEA 1 - Version Control with Puppet
PuppetCamp SEA 1 - Version Control with PuppetWalter Heck
 
YAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービスYAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービスYusuke Wada
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPiMasters
 
Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017Chetan Padia
 
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Dotan Dimet
 
Mojolicious: what works and what doesn't
Mojolicious: what works and what doesn'tMojolicious: what works and what doesn't
Mojolicious: what works and what doesn'tCosimo Streppone
 
Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答琛琳 饶
 
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014Puppet
 
Defcon 22-blake-self-cisc0ninja-dont-ddos-me-bro
Defcon 22-blake-self-cisc0ninja-dont-ddos-me-broDefcon 22-blake-self-cisc0ninja-dont-ddos-me-bro
Defcon 22-blake-self-cisc0ninja-dont-ddos-me-broPriyanka Aash
 
jQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and PerformancejQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and PerformanceJonas De Smet
 
Defcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internetDefcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internetPriyanka Aash
 
Extracting ruby gem
Extracting ruby gemExtracting ruby gem
Extracting ruby gemYura Tolstik
 

La actualidad más candente (20)

My shell
My shellMy shell
My shell
 
HappyKardashian.com for #FVCP
HappyKardashian.com for #FVCPHappyKardashian.com for #FVCP
HappyKardashian.com for #FVCP
 
PuppetCamp SEA 1 - Version Control with Puppet
PuppetCamp SEA 1 - Version Control with PuppetPuppetCamp SEA 1 - Version Control with Puppet
PuppetCamp SEA 1 - Version Control with Puppet
 
YAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービスYAPC::Asia 2010 Twitter解析サービス
YAPC::Asia 2010 Twitter解析サービス
 
wget.pl
wget.plwget.pl
wget.pl
 
Php Mysql
Php Mysql Php Mysql
Php Mysql
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
 
Blog Hacks 2011
Blog Hacks 2011Blog Hacks 2011
Blog Hacks 2011
 
Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017Beeline Firebase talk - Firebase event Jun 2017
Beeline Firebase talk - Firebase event Jun 2017
 
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
Mojolicious - Perl Framework for the Real-Time Web (Lightning Talk)
 
Mojolicious: what works and what doesn't
Mojolicious: what works and what doesn'tMojolicious: what works and what doesn't
Mojolicious: what works and what doesn't
 
Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答Perl调用微博API实现自动查询应答
Perl调用微博API实现自动查询应答
 
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
Absolute Beginners Guide to Puppet Through Types - PuppetConf 2014
 
Drupal, meet Assetic
Drupal, meet AsseticDrupal, meet Assetic
Drupal, meet Assetic
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Defcon 22-blake-self-cisc0ninja-dont-ddos-me-bro
Defcon 22-blake-self-cisc0ninja-dont-ddos-me-broDefcon 22-blake-self-cisc0ninja-dont-ddos-me-bro
Defcon 22-blake-self-cisc0ninja-dont-ddos-me-bro
 
jQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and PerformancejQuery: Tips, tricks and hints for better development and Performance
jQuery: Tips, tricks and hints for better development and Performance
 
Defcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internetDefcon 22-graham-mc millan-tentler-masscaning-the-internet
Defcon 22-graham-mc millan-tentler-masscaning-the-internet
 
Extracting ruby gem
Extracting ruby gemExtracting ruby gem
Extracting ruby gem
 
19. CodeIgniter imagini in mysql
19. CodeIgniter imagini in mysql19. CodeIgniter imagini in mysql
19. CodeIgniter imagini in mysql
 

Destacado

מצגת שלג Crm שלמה
מצגת שלג Crm   שלמהמצגת שלג Crm   שלמה
מצגת שלג Crm שלמהShelegcrm
 
Using Video on a Budget
Using Video on a BudgetUsing Video on a Budget
Using Video on a Budgetpcgak
 
東京オリンピック
東京オリンピック東京オリンピック
東京オリンピックnatsuichiiiiii
 
Social Media by LightBox Collaborative
Social Media by LightBox CollaborativeSocial Media by LightBox Collaborative
Social Media by LightBox Collaborativepcgak
 
Thema 4 les 3
Thema 4 les 3Thema 4 les 3
Thema 4 les 3wimonique
 
Focusing your Strategies with Donors
Focusing your Strategies with DonorsFocusing your Strategies with Donors
Focusing your Strategies with Donorspcgak
 
Bab 2 koordinasi badan
Bab 2 koordinasi badanBab 2 koordinasi badan
Bab 2 koordinasi badanElla Samad
 

Destacado (14)

Yoga
YogaYoga
Yoga
 
מצגת שלג Crm שלמה
מצגת שלג Crm   שלמהמצגת שלג Crm   שלמה
מצגת שלג Crm שלמה
 
Html5 CSS3
Html5 CSS3Html5 CSS3
Html5 CSS3
 
ヤノマミ
ヤノマミヤノマミ
ヤノマミ
 
Gwt
GwtGwt
Gwt
 
ヤノマミ
ヤノマミヤノマミ
ヤノマミ
 
Using Video on a Budget
Using Video on a BudgetUsing Video on a Budget
Using Video on a Budget
 
東京オリンピック
東京オリンピック東京オリンピック
東京オリンピック
 
Social Media by LightBox Collaborative
Social Media by LightBox CollaborativeSocial Media by LightBox Collaborative
Social Media by LightBox Collaborative
 
Thema 4 les 3
Thema 4 les 3Thema 4 les 3
Thema 4 les 3
 
Focusing your Strategies with Donors
Focusing your Strategies with DonorsFocusing your Strategies with Donors
Focusing your Strategies with Donors
 
Go away halloween
Go away halloweenGo away halloween
Go away halloween
 
Im alive
Im aliveIm alive
Im alive
 
Bab 2 koordinasi badan
Bab 2 koordinasi badanBab 2 koordinasi badan
Bab 2 koordinasi badan
 

Similar a Redis

Redis for your boss 2.0
Redis for your boss 2.0Redis for your boss 2.0
Redis for your boss 2.0Elena Kolevska
 
Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.Larry Cashdollar
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redisjimbojsb
 
Amir Salihefendic: Redis - the hacker's database
Amir Salihefendic: Redis - the hacker's databaseAmir Salihefendic: Redis - the hacker's database
Amir Salihefendic: Redis - the hacker's databaseit-people
 
Drush. Secrets come out.
Drush. Secrets come out.Drush. Secrets come out.
Drush. Secrets come out.Alex S
 
Building Better Applications with Data::Manager
Building Better Applications with Data::ManagerBuilding Better Applications with Data::Manager
Building Better Applications with Data::ManagerJay Shirley
 
Rails 3 (beta) Roundup
Rails 3 (beta) RoundupRails 3 (beta) Roundup
Rails 3 (beta) RoundupWayne Carter
 
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Ontico
 
performance vamos dormir mais?
performance vamos dormir mais?performance vamos dormir mais?
performance vamos dormir mais?tdc-globalcode
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统yiditushe
 
Redispresentation apac2012
Redispresentation apac2012Redispresentation apac2012
Redispresentation apac2012Ankur Gupta
 
Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)Justin Carmony
 
MySQL Performance Monitoring
MySQL Performance MonitoringMySQL Performance Monitoring
MySQL Performance Monitoringspil-engineering
 
Getting started with Spark & Cassandra by Jon Haddad of Datastax
Getting started with Spark & Cassandra by Jon Haddad of DatastaxGetting started with Spark & Cassandra by Jon Haddad of Datastax
Getting started with Spark & Cassandra by Jon Haddad of DatastaxData Con LA
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebookguoqing75
 
Gab document db scaling database
Gab   document db scaling databaseGab   document db scaling database
Gab document db scaling databaseMUG Perú
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Rabble .
 

Similar a Redis (20)

Redis for your boss 2.0
Redis for your boss 2.0Redis for your boss 2.0
Redis for your boss 2.0
 
Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.Mining Ruby Gem vulnerabilities for Fun and No Profit.
Mining Ruby Gem vulnerabilities for Fun and No Profit.
 
Scaling php applications with redis
Scaling php applications with redisScaling php applications with redis
Scaling php applications with redis
 
Redis, Resque & Friends
Redis, Resque & FriendsRedis, Resque & Friends
Redis, Resque & Friends
 
Amir Salihefendic: Redis - the hacker's database
Amir Salihefendic: Redis - the hacker's databaseAmir Salihefendic: Redis - the hacker's database
Amir Salihefendic: Redis - the hacker's database
 
Redis
RedisRedis
Redis
 
Drush. Secrets come out.
Drush. Secrets come out.Drush. Secrets come out.
Drush. Secrets come out.
 
Building Better Applications with Data::Manager
Building Better Applications with Data::ManagerBuilding Better Applications with Data::Manager
Building Better Applications with Data::Manager
 
Rails 3 (beta) Roundup
Rails 3 (beta) RoundupRails 3 (beta) Roundup
Rails 3 (beta) Roundup
 
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...Frontera распределенный робот для обхода веба в больших объемах / Александр С...
Frontera распределенный робот для обхода веба в больших объемах / Александр С...
 
performance vamos dormir mais?
performance vamos dormir mais?performance vamos dormir mais?
performance vamos dormir mais?
 
Facebook的缓存系统
Facebook的缓存系统Facebook的缓存系统
Facebook的缓存系统
 
Redispresentation apac2012
Redispresentation apac2012Redispresentation apac2012
Redispresentation apac2012
 
Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)Blazing Data With Redis (and LEGOS!)
Blazing Data With Redis (and LEGOS!)
 
MySQL Performance Monitoring
MySQL Performance MonitoringMySQL Performance Monitoring
MySQL Performance Monitoring
 
Mongo scaling
Mongo scalingMongo scaling
Mongo scaling
 
Getting started with Spark & Cassandra by Jon Haddad of Datastax
Getting started with Spark & Cassandra by Jon Haddad of DatastaxGetting started with Spark & Cassandra by Jon Haddad of Datastax
Getting started with Spark & Cassandra by Jon Haddad of Datastax
 
4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook4069180 Caching Performance Lessons From Facebook
4069180 Caching Performance Lessons From Facebook
 
Gab document db scaling database
Gab   document db scaling databaseGab   document db scaling database
Gab document db scaling database
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007
 

Más de Puneet Kumar

Más de Puneet Kumar (7)

Quick Scala
Quick ScalaQuick Scala
Quick Scala
 
Robotics using EV3 Introduction
Robotics using EV3 Introduction Robotics using EV3 Introduction
Robotics using EV3 Introduction
 
Chess1
Chess1Chess1
Chess1
 
Android accessibility
Android accessibilityAndroid accessibility
Android accessibility
 
Nagios
NagiosNagios
Nagios
 
System adm
System admSystem adm
System adm
 
Bitcoin
BitcoinBitcoin
Bitcoin
 

Redis

  • 1. Redis Installing Basics Data structures Pseudo Multi Key Queries References and Indexes Round Trips and Pipelining Transactions Keys Anti pattern, Use SCAN Expire, Pub-Sub Monitor, Sort Administration A few commands Big O Reference
  • 2. iNSTALLING • Download redis-2.8.7.tar.gz, untar • $ make $ make test $ cd src • $ redis-server #server accepts connections on port6379 • $ redis-cli • $$ info • $ redis-benchmark
  • 3. basics • In-memory persistent key-value store 5 data structures • $select 1 # many databases • $ set users:leto '{"name": "leto", "planet": "dune", "likes": ["spice"]}’ # Every data struct has key eg users:leto • $ get users:leto # Values are arbitrary byte arrays that Redis doesn’t care about
  • 4. Data Structures • Strings $strlen $getrange $append • Hashes $hset users:goku powerlevel 9000 • Lists $ lpush newusers goku • Sets $sadd friends:leto ghanima paul chani jessica • Sortd Sets $ zadd friends:duncan 70 ghanima 95 paul 95 chani 75 jessica 1 vladimir
  • 5. Pseudo Multi Key Queries • $set users:9001 '{"id": 9001, "email": "leto@dune.gov", ...}’ • $hset users:lookup:email leto@dune.gov 9001 • $get users:9001 • $id = redis.hget('users:lookup:email' , 'leto@dune.gov' ) # ruby • $user = redis.get("users:#{id}" ) # ruby
  • 6. References and Indexes • $sadd friends:leto ghanima paul chani jessica • $sadd friends_of:chani leto paul • # having to manually deal with references in Redis is unfortunate.
  • 7. Round Trips and Pipelining • #Redis also supports pipelining. Normally when a client sends a request to Redis it waits for the reply before sending the next request. With pipelining you can send a number of requests without waiting for their responses.
  • 8. Transactions • $multi • $hincrby groups:1percent balance -9000000000 • $hincrby groups:99percent balance 9000000000 • $exec # Or use command discard • $ redis.watch('powerlevel' ) #ruby • $ current = redis.get('powerlevel' ) #ruby • $ redis.multi() #ruby • $ redis.set('powerlevel' , current + 1) #ruby • $ redis.exec() #ruby
  • 9. Keys Anti pattern, Use SCAN • $ keys bug:1233:* • #command takes a pattern and finds all the matching keys • #Should never be used in production code. Linear scan through all the keys. • Better: • $hset bugs:1233 1 '{"id":1, "account": 1233, "subject": "..."}’ • $hset bugs:1233 2 '{"id":2, "account": 1233, "subject": "..."}’ • $ scan 0 match bugs:* count 20 $ hscan $sscan $zscan
  • 10. Expire, Pub-Sub • $expire pages:about 30 • $ ttl pages:about • $ persist pages:about • $ setex pages:about 30 '<h1>about us</h1>....’ • $ subscribe warnings $unsubscribe $punsubscribe • $ publish warnings "it's over 9000!” $psubscribe warnings:*) • $blpop $brpop
  • 11. Monitor, Sort • $ monitor • $ config set slowlog-log-slower-than 0 • $ slowlog $ slowlog len • $ sort users:leto:guesses • $ sort friends:ghanima limit 0 3 desc alpha • $ sort watch:leto by severity:* desc • $ sort watch:leto by bug:*->priority get bug:*->details • $ sort watch:leto by bug:*->priority get bug:*->details store watch_by_priority:leto
  • 12. Administration • $ config get *log* # http://download.redis.io/redis-stable/redis.conf • $ requirepass $ auth password • $ rename-command FLUSHALL 1041285018a942a4922cbf76623b741e • $ slaveof # Replication
  • 13. A few commands • Auth, echo, ping, quit, select • Del, dump, exists, expire, expireat, keys, migrate, move, object, persi st, pexpire, pexpireat, pttl, randomkey, rename, renamenx, restore, so rt, ttl, type, scan • Append, bitcount, bitop, bitops, decr, decrby, get, getbit, getrange, get set, inc, incrby, incrbyfloat, mget, mset, msetnx, psetex, set, setbit, set ex, setnx, setrange, strlen
  • 14. Big O • O(1) sismember • O(log(N) zadd ltrim • O(log(N)+M) zremrangebyscore • O(N+M*log(M)) sort • O(Nˆ2) and O(CˆN) no commands

Notas del editor

  1. Puneet Kumar
  2. Strings $incr $incrby $setbit $getbitHashes hgetusers:gokupowerlevel $ hmsetusers:goku race saiyan age 737 $ hgetallusers:goku $ hkeysusers:goku $ hdelusers:goku age Lists $ltrimnewusers 0 49 Sets $sismemberfriends:letojessica $sinter friends:leto friends:duncan $sinterstorefriends:leto_duncanfriends:leto friends:duncanSorted Sets $zcount friends:duncan 90 100 $zrevrank friends:duncan chani