1、redis基本数据类型
string
list
set
sort set
hash
2、数据类型的基本操作
(1)string
127.0.0.1:6379> set name "lck" OK 127.0.0.1:6379> get name "lck" 127.0.0.1:6379> append name "jaca" (integer) 7 127.0.0.1:6379> get name "lckjaca"
127.0.0.1:6379> set name "lck"
OK
127.0.0.1:6379> get name
"lck"
127.0.0.1:6379> append name "jaca"
(integer) 7
"lckjaca"
127.0.0.1:6379> set counter 1000 OK 127.0.0.1:6379> get counter "1000" 127.0.0.1:6379> incr counter (integer) 1001 127.0.0.1:6379> decr counter (integer) 1000
127.0.0.1:6379> set counter 1000
127.0.0.1:6379> get counter
"1000"
127.0.0.1:6379> incr counter
(integer) 1001
127.0.0.1:6379> decr counter
(integer) 1000
(2)list
127.0.0.1:6379> lpush lists redis #左添加 (integer) 1 127.0.0.1:6379> lpush lists mongo #左添加 (integer) 2 127.0.0.1:6379> lrange lists 1:-1 #有错误 (error) ERR wrong number of arguments for \'lrange\' command 127.0.0.1:6379> lrange lists 1 -1 #获取1到最后所有数据 1) "redis" 127.0.0.1:6379> lrange lists 0 -1 #获取所有数据 1) "mongo" 2) "redis" 127.0.0.1:6379> rpush lists python #右添加数据 (integer) 3 127.0.0.1:6379> lrange lists 0 -1 1) "mongo" 2) "redis" 3) "python" 127.0.0.1:6379> lpop lists #左取数据,取出后数据就没有了 "mongo" 127.0.0.1:6379> lrange lists 0 -1 1) "redis" 2) "python" 127.0.0.1:6379> rpop lists #右边取数据 "python" 127.0.0.1:6379> lrange lists 0 -1 1) "redis" 127.0.0.1:6379> llen lists (integer) 1
127.0.0.1:6379> lpush lists redis #左添加
(integer) 1
127.0.0.1:6379> lpush lists mongo #左添加
(integer) 2
127.0.0.1:6379> lrange lists 1:-1 #有错误
(error) ERR wrong number of arguments for \'lrange\' command
127.0.0.1:6379> lrange lists 1 -1 #获取1到最后所有数据
1) "redis"
127.0.0.1:6379> lrange lists 0 -1 #获取所有数据
1) "mongo"
2) "redis"
127.0.0.1:6379> rpush lists python #右添加数据
(integer) 3
127.0.0.1:6379> lrange lists 0 -1
3) "python"
127.0.0.1:6379> lpop lists #左取数据,取出后数据就没有了
"mongo"
2) "python"
127.0.0.1:6379> rpop lists #右边取数据
"python"
127.0.0.1:6379> llen lists
(3)set
127.0.0.1:6379> sadd sets a (integer) 1 127.0.0.1:6379> sadd sets bb (integer) 1 127.0.0.1:6379> sadd sets bb (integer) 0 127.0.0.1:6379> sadd sets ccc (integer) 1 127.0.0.1:6379> sadd sets ccc (integer) 0 127.0.0.1:6379> sadd sets a bb dddd (integer) 1 127.0.0.1:6379> scard sets (integer) 4 127.0.0.1:6379> scan sets (error) ERR invalid cursor 127.0.0.1:6379> smember sets (error) ERR unknown command \'smember\' 127.0.0.1:6379> smembers sets 1) "ccc" 2) "a" 3) "bb" 4) "dddd" 127.0.0.1:6379> scard set (integer) 0 127.0.0.1:6379> scard sets (integer) 4 127.0.0.1:6379> srem sets "dddd" (integer) 1 127.0.0.1:6379> smembers sets 1) "ccc" 2) "a" 3) "bb" 127.0.0.1:6379> sadd setA 1 2 3 (integer) 3 127.0.0.1:6379> sadd setB 2 3 4 (integer) 3 127.0.0.1:6379> sdiff setA setB 1) "1"
127.0.0.1:6379> sadd sets a
127.0.0.1:6379> sadd sets bb
(integer) 0
127.0.0.1:6379> sadd sets ccc
127.0.0.1:6379> sadd sets a bb dddd
127.0.0.1:6379> scard sets
(integer) 4
127.0.0.1:6379> scan sets
(error) ERR invalid cursor
127.0.0.1:6379> smember sets
(error) ERR unknown command \'smember\'
127.0.0.1:6379> smembers sets
1) "ccc"
2) "a"
3) "bb"
4) "dddd"
127.0.0.1:6379> scard set
127.0.0.1:6379> srem sets "dddd"
127.0.0.1:6379> sadd setA 1 2 3
127.0.0.1:6379> sadd setB 2 3 4
127.0.0.1:6379> sdiff setA setB
1) "1"
(4)sort set
127.0.0.1:6379> zadd sortset 1 redis 3 mysql 2 python (integer) 3 127.0.0.1:6379> zmembers sortset (error) ERR unknown command \'zmembers\' 127.0.0.1:6379> smembers sortset (error) WRONGTYPE Operation against a key holding the wrong kind of value 127.0.0.1:6379> zrange sortset 0 -1 1) "redis" 2) "python" 3) "mysql" 127.0.0.1:6379> zadd sortset 2 mongo (integer) 1 127.0.0.1:6379> zrange sortset 0 -1 1) "redis" 2) "mongo" 3) "python" 4) "mysql" 127.0.0.1:6379> zrank sortset 2 (nil) 127.0.0.1:6379> zrank sortset mongo (integer) 1 127.0.0.1:6379> zrank sortset python (integer) 2 127.0.0.1:6379> zrevrank sortset mongo (integer) 2 127.0.0.1:6379> zrangebysocre sortset 2 3 withscores (error) ERR unknown command \'zrangebysocre\' 127.0.0.1:6379> zrangebyscore sortset 2 3 withscores 1) "mongo" 2) "2" 3) "python" 4) "2" 5) "mysql" 6) "3" 127.0.0.1:6379> zcount sortset 2 3 (integer) 3 127.0.0.1:6379> zcard sortset (integer) 4
127.0.0.1:6379> zadd sortset 1 redis 3 mysql 2 python
127.0.0.1:6379> zmembers sortset
(error) ERR unknown command \'zmembers\'
127.0.0.1:6379> smembers sortset
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> zrange sortset 0 -1
3) "mysql"
127.0.0.1:6379> zadd sortset 2 mongo
2) "mongo"
4) "mysql"
127.0.0.1:6379> zrank sortset 2
(nil)
127.0.0.1:6379> zrank sortset mongo
127.0.0.1:6379> zrank sortset python
127.0.0.1:6379> zrevrank sortset mongo
127.0.0.1:6379> zrangebysocre sortset 2 3 withscores
(error) ERR unknown command \'zrangebysocre\'
127.0.0.1:6379> zrangebyscore sortset 2 3 withscores
2) "2"
4) "2"
5) "mysql"
6) "3"
127.0.0.1:6379> zcount sortset 2 3
127.0.0.1:6379> zcard sortset
(5)hash
127.0.0.1:6379> hset hashset field1 hello (integer) 1 127.0.0.1:6379> hsetnx hashset field "hello" (integer) 1 127.0.0.1:6379> hsetnx hashset field "hello" (integer) 0 127.0.0.1:6379> hsetnx hashset field1 "hello" (integer) 0 127.0.0.1:6379> hmset hash set field1 "hello1" field2 "hello2" (error) ERR wrong number of arguments for HMSET 127.0.0.1:6379> hmset hashset field1 "hello1" field2 "hello2" OK 127.0.0.1:6379> hget hashset field1 "hello1" 127.0.0.1:6379> hget hashset field2 "hello2" 127.0.0.1:6379> hget hashset field "hello" 127.0.0.1:6379> hget hashset field3 (nil) 127.0.0.1:6379> hmget hashset field field1 1) "hello" 2) "hello1" 127.0.0.1:6379> hexist hashset field (error) ERR unknown command \'hexist\' 127.0.0.1:6379> hexists hashset field (integer) 1 127.0.0.1:6379> hexists hashset field4 (integer) 0 127.0.0.1:6379> hlen hashset (integer) 3 127.0.0.1:6379> hdel hashset field2 (integer) 1 127.0.0.1:6379> hkeys hashset 1) "field1" 2) "field" 127.0.0.1:6379> hvals hashset 1) "hello1" 2) "hello" 127.0.0.1:6379> hgetall hashset 1) "field1" 2) "hello1" 3) "field" 4) "hello"
127.0.0.1:6379> hset hashset field1 hello
127.0.0.1:6379> hsetnx hashset field "hello"
127.0.0.1:6379> hsetnx hashset field1 "hello"
127.0.0.1:6379> hmset hash set field1 "hello1" field2 "hello2"
(error) ERR wrong number of arguments for HMSET
127.0.0.1:6379> hmset hashset field1 "hello1" field2 "hello2"
127.0.0.1:6379> hget hashset field1
"hello1"
127.0.0.1:6379> hget hashset field2
"hello2"
127.0.0.1:6379> hget hashset field
"hello"
127.0.0.1:6379> hget hashset field3
127.0.0.1:6379> hmget hashset field field1
1) "hello"
2) "hello1"
127.0.0.1:6379> hexist hashset field
(error) ERR unknown command \'hexist\'
127.0.0.1:6379> hexists hashset field
127.0.0.1:6379> hexists hashset field4
127.0.0.1:6379> hlen hashset
127.0.0.1:6379> hdel hashset field2
127.0.0.1:6379> hkeys hashset
1) "field1"
2) "field"
127.0.0.1:6379> hvals hashset
1) "hello1"
2) "hello"
127.0.0.1:6379> hgetall hashset
3) "field"
4) "hello"
127.0.0.1:6379> keys * 1) "counter" 2) "setB" 3) "setA" 4) "name" 5) "lists" 6) "sets" 7) "hashset" 8) "sortset" 127.0.0.1:6379> keys list* 1) "lists"
127.0.0.1:6379> keys *
1) "counter"
2) "setB"
3) "setA"
4) "name"
5) "lists"
6) "sets"
7) "hashset"
8) "sortset"
127.0.0.1:6379> keys list*
1) "lists"
127.0.0.1:6379> exists list* (integer) 0 127.0.0.1:6379> exists lists (integer) 1
127.0.0.1:6379> exists list*
127.0.0.1:6379> exists lists
127.0.0.1:6379> del setA (integer) 1 127.0.0.1:6379> keys set* 1) "setB" 2) "sets"
127.0.0.1:6379> del setA
127.0.0.1:6379> keys set*
1) "setB"
2) "sets"
127.0.0.1:6379> expire setB 10 (integer) 1 127.0.0.1:6379> keys set* 1) "setB" 2) "sets" 127.0.0.1:6379> keys set* 1) "sets"
127.0.0.1:6379> expire setB 10
1) "sets"
127.0.0.1:6379> select 0 OK 127.0.0.1:6379> set age 27 OK 127.0.0.1:6379> move age 1 (integer) 1 127.0.0.1:6379> get age (nil) 127.0.0.1:6379> select 1 OK 127.0.0.1:6379[1]> get age "27"
127.0.0.1:6379> select 0
127.0.0.1:6379> set age 27
127.0.0.1:6379> move age 1
127.0.0.1:6379> get age
127.0.0.1:6379> select 1
127.0.0.1:6379[1]> get age
"27"
127.0.0.1:6379> rename lists list_new OK 127.0.0.1:6379> keys * 1) "counter" 2) "name" 3) "sets" 4) "list_new" 5) "hashset" 6) "sortset"
127.0.0.1:6379> rename lists list_new
2) "name"
3) "sets"
4) "list_new"
5) "hashset"
6) "sortset"
127.0.0.1:6379> type name string 127.0.0.1:6379> type sets set 127.0.0.1:6379> type hashset hash
127.0.0.1:6379> type name
127.0.0.1:6379> type sets
127.0.0.1:6379> type hashset
127.0.0.1:6379> dbsize (integer) 6
127.0.0.1:6379> dbsize
(integer) 6
127.0.0.1:6379> info # Server redis_version:2.8.19 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:d7de94bf5eadec7a redis_mode:standalone os:Darwin 15.2.0 x86_64 arch_bits:64 multiplexing_api:kqueue gcc_version:4.2.1 process_id:2649 run_id:2435ddcac767793374bb57a965b468e5a9a36d9b tcp_port:6379 uptime_in_seconds:8221 uptime_in_days:0 hz:10 lru_clock:14648576 config_file:/usr/local/etc/redis.conf # Clients connected_clients:1 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 # Memory used_memory:1004400 used_memory_human:980.86K used_memory_rss:1040384 used_memory_peak:1004512 used_memory_peak_human:980.97K used_memory_lua:35840 mem_fragmentation_ratio:1.04 mem_allocator:libc # Persistence loading:0 rdb_changes_since_last_save:8 rdb_bgsave_in_progress:0 rdb_last_save_time:1474265548 rdb_last_bgsave_status:ok rdb_last_bgsave_time_sec:0 rdb_current_bgsave_time_sec:-1 aof_enabled:0 aof_rewrite_in_progress:0 aof_rewrite_scheduled:0 aof_last_rewrite_time_sec:-1 aof_current_rewrite_time_sec:-1 aof_last_bgrewrite_status:ok aof_last_write_status:ok # Stats total_connections_received:1 total_commands_processed:89 instantaneous_ops_per_sec:0 total_net_input_bytes:3308 total_net_output_bytes:1469 instantaneous_input_kbps:0.00 instantaneous_output_kbps:0.00 rejected_connections:0 sync_full:0 sync_partial_ok:0 sync_partial_err:0 expired_keys:1 evicted_keys:0 keyspace_hits:41 keyspace_misses:2 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:285 # Replication role:master connected_slaves:0 master_repl_offset:0 repl_backlog_active:0 repl_backlog_size:1048576 repl_backlog_first_byte_offset:0 repl_backlog_histlen:0 # CPU used_cpu_sys:3.19 used_cpu_user:1.64 used_cpu_sys_children:0.01 used_cpu_user_children:0.00 # Keyspace db0:keys=6,expires=0,avg_ttl=0 db1:keys=1,expires=0,avg_ttl=0
127.0.0.1:6379> info
# Server
redis_version:2.8.19
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:d7de94bf5eadec7a
redis_mode:standalone
os:Darwin 15.2.0 x86_64
arch_bits:64
multiplexing_api:kqueue
gcc_version:4.2.1
process_id:2649
run_id:2435ddcac767793374bb57a965b468e5a9a36d9b
tcp_port:6379
uptime_in_seconds:8221
uptime_in_days:0
hz:10
lru_clock:14648576
config_file:/usr/local/etc/redis.conf
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:1004400
used_memory_human:980.86K
used_memory_rss:1040384
used_memory_peak:1004512
used_memory_peak_human:980.97K
used_memory_lua:35840
mem_fragmentation_ratio:1.04
mem_allocator:libc
# Persistence
loading:0
rdb_changes_since_last_save:8
rdb_bgsave_in_progress:0
rdb_last_save_time:1474265548
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
# Stats
total_connections_received:1
total_commands_processed:89
instantaneous_ops_per_sec:0
total_net_input_bytes:3308
total_net_output_bytes:1469
instantaneous_input_kbps:0.00
instantaneous_output_kbps:0.00
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:1
evicted_keys:0
keyspace_hits:41
keyspace_misses:2
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:285
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:3.19
used_cpu_user:1.64
used_cpu_sys_children:0.01
used_cpu_user_children:0.00
# Keyspace
db0:keys=6,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
127.0.0.1:6379> config get dir 1) "dir" 2) "/usr/local/var/db/redis"
127.0.0.1:6379> config get dir
1) "dir"
2) "/usr/local/var/db/redis"
127.0.0.1:6379> select 0 OK 127.0.0.1:6379> set age 27 OK 127.0.0.1:6379> get age "27" 127.0.0.1:6379> multi OK 127.0.0.1:6379> set age 28 QUEUED 127.0.0.1:6379> get age QUEUED 127.0.0.1:6379> exec 1) OK 2) "28" 127.0.0.1:6379> get age "28"
127.0.0.1:6379> multi
127.0.0.1:6379> set age 28
QUEUED
127.0.0.1:6379> exec
1) OK
2) "28"
"28"
127.0.0.1:6379> get age "28" 127.0.0.1:6379> multi OK 127.0.0.1:6379> set age 29 QUEUED 127.0.0.1:6379> set age 50 QUEUED 127.0.0.1:6379> discard OK 127.0.0.1:6379> get age "28"
127.0.0.1:6379> set age 29
127.0.0.1:6379> set age 50
127.0.0.1:6379> discard
127.0.0.1:6379> get age "20" 127.0.0.1:6379> watch age OK 127.0.0.1:6379> multi OK
"20"
127.0.0.1:6379> watch age
127.0.0.1:6379> get age "20" 127.0.0.1:6379> set age 30 OK 127.0.0.1:6379> get age "30"
127.0.0.1:6379> set age 30
"30"
127.0.0.1:6379> set age 20 QUEUED 127.0.0.1:6379> exec (nil) 127.0.0.1:6379> get age "30"
127.0.0.1:6379> set age 20