1.String(字符串)
string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据,如jpg图片或者序列化的对象。 string类型是redis最基本的数据类型,一个redis中字符串value最大允许512m127.0.0.1:6379> set k1 k1 OK 127.0.0.1:6379> get k1 "k1" 127.0.0.1:6379> get k1 "k1" 127.0.0.1:6379> key * (error) ERR unknown command 'key' 127.0.0.1:6379> KEYS * 1) "k1" 127.0.0.1:6379> del k1 (integer) 1 127.0.0.1:6379> KEYS * (empty list or set) 127.0.0.1:6379> set k1 123 OK 127.0.0.1:6379> append k1 456 (integer) 6 127.0.0.1:6379> get k1 "123456" 127.0.0.1:6379> strlen k1 (integer) 6
127.0.0.1:6379> set k2 1 OK 127.0.0.1:6379> INCR k2 (integer) 2 127.0.0.1:6379> INCR k2 (integer) 3 127.0.0.1:6379> INCR k2 (integer) 4 127.0.0.1:6379> DECR k2 (integer) 3 127.0.0.1:6379> DECR k2 (integer) 2 127.0.0.1:6379> DECR k2 (integer) 1 127.0.0.1:6379> INCRBY k2 3 (integer) 4 127.0.0.1:6379> INCRBY k2 3 (integer) 7 127.0.0.1:6379> INCRBY k2 3 (integer) 10 127.0.0.1:6379> INCRBY k2 3 (integer) 13 127.0.0.1:6379> DECRBY k2 2 (integer) 11 127.0.0.1:6379> DECRBY k2 2 (integer) 9 127.0.0.1:6379> DECRBY k2 2 (integer) 7
127.0.0.1:6379> set k3 123456789 OK 127.0.0.1:6379> get k3 "123456789" 127.0.0.1:6379> GETRANGE k3 0 -1 "123456789" 127.0.0.1:6379> GETRANGE k3 0 5 "123456" 127.0.0.1:6379> GETRANGE k3 3 7 "45678" 127.0.0.1:6379> set k3 0 xxx (error) ERR syntax error 127.0.0.1:6379> SETRANGE k3 0 xxx (integer) 9 127.0.0.1:6379> get k3 "xxx456789"
127.0.0.1:6379> SETEX k4 10 v4 OK 127.0.0.1:6379> get k4 "v4" 127.0.0.1:6379> ttl k4 (integer) 0 127.0.0.1:6379> ttl k4 (integer) -2 127.0.0.1:6379> get 4k (nil) 127.0.0.1:6379> get k4 (nil) 127.0.0.1:6379> setnx k3 v33 (integer) 0 127.0.0.1:6379> get k3 "xxx456789" 127.0.0.1:6379> SETNX k5 v5 (integer) 1 127.0.0.1:6379> get k5 "v5"
127.0.0.1:6379> mset kk1 vv1 kk2 vv2 kk3 vv3 OK 127.0.0.1:6379> mget kk1 kk2 kk3 1) "vv1" 2) "vv2" 3) "vv3" 127.0.0.1:6379> MSETNX kk1 vvv1 kk2 vvv2 (integer) 0 127.0.0.1:6379> MSETNX kk1 vvv1 kk4 vv4 (integer) 0 127.0.0.1:6379> MSETNX kk4 vv4 kk5 vv5 (integer) 1
127.0.0.1:6379> getset k6 v6 (nil) 127.0.0.1:6379> get k7 (nil) 127.0.0.1:6379> getset k7 v7 (nil) 127.0.0.1:6379> get k7 "v7" 127.0.0.1:6379> getset k7 v77 "v7" 127.0.0.1:6379> get k7 "v77"
hset key key1 value:设置一个Hash,是一个键值对,键为key;值又是一个键值对,键为key1,值为value
hget key key1:获得一个值。
hmset key key1 value1 key2 value2:设置一个Hash,键值对的键为key;值为多个键值对,键为key*,值为value*。
hmget:由主键与多个二级主键获得多个值。
hgetall:由主键获得所有的二级主键与对应的值。
hdel key:删除一个二级键值对。
127.0.0.1:6379> hset user id 11 (integer) 1 127.0.0.1:6379> hget user id "11" 127.0.0.1:6379> hset user name lolo (integer) 1 127.0.0.1:6379> hget user name "lolo" 127.0.0.1:6379> hmset customer id 11 name linda age 12 OK 127.0.0.1:6379> hmget customer id name age 1) "11" 2) "linda" 3) "12" 127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 5) "age" 6) "12" 127.0.0.1:6379> HDEL customer age (integer) 1 127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda"
127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 127.0.0.1:6379> hlen customer (integer) 2
127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 127.0.0.1:6379> HEXISTS customer id (integer) 1 127.0.0.1:6379> HEXISTS customer ids (integer) 0
127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 127.0.0.1:6379> HEXISTS customer id (integer) 1 127.0.0.1:6379> HEXISTS customer ids (integer) 0
127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 5) "age" 6) "3" 127.0.0.1:6379> HINCRBY customer age 3 (integer) 6 127.0.0.1:6379> 127.0.0.1:6379> HINCRBY customer age 3 (integer) 9 127.0.0.1:6379> 127.0.0.1:6379> HINCRBY customer age 3 (integer) 12 127.0.0.1:6379> HINCRBYFLOAT customer age 2.5 "14.5" 127.0.0.1:6379> HINCRBYFLOAT customer age 2.5 "17" 127.0.0.1:6379> HINCRBYFLOAT customer age 2.5 "19.5"
127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 5) "age" 6) "19.5" 127.0.0.1:6379> HSETNX customer age 11 (integer) 0 127.0.0.1:6379> HSETNX customer email 111@yyyu.com (integer) 1 127.0.0.1:6379> HGETALL customer 1) "id" 2) "11" 3) "name" 4) "linda" 5) "age" 6) "19.5" 7) "email" 8) "111@yyyu.com"
127.0.0.1:6379> LPUSH list1 1 2 3 4 5 (integer) 5 127.0.0.1:6379> LRANGE list1 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" 127.0.0.1:6379> RPUSH list2 1 2 3 4 5 (integer) 5 127.0.0.1:6379> LRANGE list2 0 -1 1) "1" 2) "2" 3) "3" 4) "4" 5) "5"
127.0.0.1:6379> LPOP list1 "5" 127.0.0.1:6379> lpop list2 "1" 127.0.0.1:6379> LRANGE list1 0 -1 1) "4" 2) "3" 3) "2" 4) "1" 127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "3" 3) "4" 4) "5" 127.0.0.1:6379> RPOP list1 "1" 127.0.0.1:6379> RPOP list2 "5" 127.0.0.1:6379> LRANGE list 0 -1 (empty list or set) 127.0.0.1:6379> LRANGE list1 0 -1 1) "4" 2) "3" 3) "2" 127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "3" 3) "4"
127.0.0.1:6379> LRANGE list1 0 -1 1) "4" 2) "3" 3) "2" 4) "1" 127.0.0.1:6379> LINDEX list1 3 (nil) 127.0.0.1:6379> LINDEX list1 2 "2"
127.0.0.1:6379> LRANGE list1 0 -1 1) "4" 2) "3" 3) "2" 127.0.0.1:6379> LLEN list1 (integer) 3
127.0.0.1:6379> LPUSH list3 1 1 1 2 2 2 3 3 3 4 4 4 5 6 6 7 (integer) 16 127.0.0.1:6379> LREM list3 2 4 (integer) 2 127.0.0.1:6379> LRANGE list3 0 -1 1) "7" 2) "6" 3) "6" 4) "5" 5) "4" 6) "3" 7) "3" 8) "3" 9) "2" 10) "2" 11) "2" 12) "1" 13) "1" 14) "1"
127.0.0.1:6379> RPUSH list4 1 2 3 4 5 6 7 8 9 (integer) 9 127.0.0.1:6379> LTRIM list4 0 5 OK 127.0.0.1:6379> LRANGE list4 0 -1 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 6) "6" 127.0.0.1:6379> LTRIM list4 2 4 OK 127.0.0.1:6379> LRANGE list4 0 -1 1) "3" 2) "4"
127.0.0.1:6379> LRANGE list1 0 -1 1) "4" 2) "3" 3) "2" 127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "3" 3) "4" 127.0.0.1:6379> RPOPLPUSH list1 list2 "2" 127.0.0.1:6379> LRANGE list1 0 -1 1) "4" 2) "3" 127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "2" 3) "3" 4) "4"
127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "2" 3) "3" 4) "4" 127.0.0.1:6379> LSET list2 2 10 OK 127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "2" 3) "10" 4) "4"
127.0.0.1:6379> LINSERT list2 before 10 java (integer) 5 127.0.0.1:6379> LINSERT list2 after 10 c++ (integer) 6 127.0.0.1:6379> LRANGE list2 0 -1 1) "2" 2) "2" 3) "java" 4) "10" 5) "c++" 6) "4"
27.0.0.1:6379> SADD set 1 1 2 2 3 3 (integer) 3 127.0.0.1:6379> SMEMBERS set 1) "1" 2) "2" 3) "3" 127.0.0.1:6379> SISMEMBER 1 127.0.0.1:6379> SISMEMBER set 1 (integer) 1 127.0.0.1:6379> SISMEMBER set 4 (integer) 0 127.0.0.1:6379> del set (integer) 1
127.0.0.1:6379> SCARD set (integer) 3
127.0.0.1:6379> SMEMBERS set 1) "1" 2) "2" 3) "3" 127.0.0.1:6379> srem set 2 (integer) 1 127.0.0.1:6379> SMEMBERS set 1) "1" 2) "3"
127.0.0.1:6379> SADD set1 1 2 3 4 5 6 7 8 9 (integer) 9 127.0.0.1:6379> SRANDMEMBER set1 "9" 127.0.0.1:6379> SRANDMEMBER set1 5 1) "6" 2) "8" 3) "5" 4) "3" 5) "2"
127.0.0.1:6379> SMEMBERS set1 1) "1" 2) "2" 3) "3" 4) "4" 5) "5" 6) "6" 7) "7" 8) "8" 9) "9" 127.0.0.1:6379> SPOP set1 4 1) "9" 2) "1" 3) "4" 4) "7" 127.0.0.1:6379> 127.0.0.1:6379> SPOP set1 "8"
127.0.0.1:6379> SADD set2 1 2 3 (integer) 3 127.0.0.1:6379> SADD set3 x y z (integer) 3 127.0.0.1:6379> SMOVE set2 set3 2 (integer) 1 127.0.0.1:6379> SMEMBERS set2 1) "1" 2) "3" 127.0.0.1:6379> SMEMBERS set3 1) "y" 2) "x" 3) "2" 4) "z"
127.0.0.1:6379> SADD set1 1 2 3 4 5 6 (integer) 6 127.0.0.1:6379> SADD set2 2 5 6 u t i (integer) 6 127.0.0.1:6379> SDIFF set1 set2 1) "1" 2) "3" 3) "4" 127.0.0.1:6379> SDIFF set2 set1 1) "t" 2) "i" 3) "u" 127.0.0.1:6379> SINTER set1 set2 1) "2" 2) "5" 3) "6" 127.0.0.1:6379> SUNION set1 set2 1) "5" 2) "4" 3) "1" 4) "t" 5) "3" 6) "6" 7) "2" 8) "u" 9) "i"
127.0.0.1:6379> ZADD zset1 50 v1 60 v2 70 v3 80 v4 90 v5 (integer) 5 127.0.0.1:6379> ZRANGE zset1 0 -1 1) "v1" 2) "v2" 3) "v3" 4) "v4" 5) "v5" 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores 1) "v1" 2) "50" 3) "v2" 4) "60" 5) "v3" 6) "70" 7) "v4" 8) "80" 9) "v5" 10) "90" 127.0.0.1:6379> ZREVRANGE zset1 0 -1 withscores 1) "v5" 2) "90" 3) "v4" 4) "80" 5) "v3" 6) "70" 7) "v2" 8) "60" 9) "v1" 10) "50"
127.0.0.1:6379> ZRANGE zset1 0 -1 withscores 1) "v1" 2) "50" 3) "v2" 4) "60" 5) "v3" 6) "70" 7) "v4" 8) "80" 9) "v5" 10) "90" 127.0.0.1:6379> ZRANGEBYSCORE zset1 60 80 1) "v2" 2) "v3" 3) "v4" 127.0.0.1:6379> ZREVRANGEBYSCORE zset1 90 60 1) "v5" 2) "v4" 3) "v3" 4) "v2" 127.0.0.1:6379> ZRANGEBYSCORE zset1 60 (80 1) "v2" 2) "v3" 127.0.0.1:6379> ZRANGEBYSCORE zset1 (60 (80 1) "v3" 127.0.0.1:6379> ZRANGEBYSCORE zset1 60 80 limit 1 2 1) "v3" 2) "v4"
127.0.0.1:6379> ZRANGE zset1 0 -1 withscores 1) "v1" 2) "50" 3) "v2" 4) "60" 5) "v3" 6) "70" 7) "v4" 8) "80" 9) "v5" 10) "90" 127.0.0.1:6379> zrem zset1 v4 (integer) 1 127.0.0.1:6379> ZRANGE zset1 0 -1 withscores 1) "v1" 2) "50" 3) "v2" 4) "60" 5) "v3" 6) "70" 7) "v5" 8) "90"
127.0.0.1:6379> ZRANGE zset1 0 -1 withscores 1) "v1" 2) "50" 3) "v2" 4) "60" 5) "v3" 6) "70" 7) "v5" 8) "90" 127.0.0.1:6379> zcard zset1 (integer) 4 127.0.0.1:6379> ZCOUNT zset1 60 90 (integer) 3 127.0.0.1:6379> zrank zset1 v3 (integer) 2 127.0.0.1:6379> zscore zset1 v3 "70"
127.0.0.1:6379> KEYS * 1) "k1" 2) "key:__rand_int__" 3) "counter:__rand_int__" 4) "myset:__rand_int__" 5) "mylist" 127.0.0.1:6379> set k2 hello OK 127.0.0.1:6379> set k3 hello OK 127.0.0.1:6379> KEYS k 1) "k3" 2) "k1" 3) "k2"
27.0.0.1:6379> set k1 k1 OK 127.0.0.1:6379> set k2 k2 OK 127.0.0.1:6379> KEYS * 1) "k1" 2) "k2" 127.0.0.1:6379> EXISTS k1 (integer) 1 127.0.0.1:6379> EXISTS k3 (integer) 0
27.0.0.1:6379> move k2 2 (integer) 1 127.0.0.1:6379> EXISTS k2 (integer) 0 127.0.0.1:6379> SELECT 2 OK 127.0.0.1:6379[2]> EXISTS k2 (integer) 1 127.0.0.1:6379[2]> select 0 OK 127.0.0.1:6379> KEYS * 1) "k1"
27.0.0.1:6379> TTL k1 (integer) -1 127.0.0.1:6379> EXPIRE k1 10 (integer) 1 127.0.0.1:6379> ttl k1 (integer) 6 127.0.0.1:6379> ttl k2 (integer) -2 127.0.0.1:6379> ttl k1 (integer) -2 127.0.0.1:6379> get k1 (nil) 127.0.0.1:6379> KEYS * (empty list or set)
127.0.0.1:6379> set k3 k3 OK 127.0.0.1:6379> type k3 string 127.0.0.1:6379> LPUSH mylist 1 2 3 4 5 (integer) 5 127.0.0.1:6379> LRANGE mylist 0 -1 1) "5" 2) "4" 3) "3" 4) "2" 5) "1" 127.0.0.1:6379> TYPE mylist list
127.0.0.1:6379> set k4 k4 OK 127.0.0.1:6379> set k4 v4 OK 127.0.0.1:6379> get k4 "v4"