①结构图:
②Redis_key键
keys * -- 查看当前库所有数据
exists key的名字 --普安段某个key是否存在 1 代表存在, 0代表不存在
move key db --移除key到指定分库
expire key(秒) --设置过期时间
ttl key --查看过期时间 -1 代表永不过期 -2代表已过期
type key --查看类型
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *
1) "k1"
127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> move k1 2
(integer) 1
127.0.0.1:6379[15]> select 2
OK
127.0.0.1:6379[2]> keys *
1) "k1"
127.0.0.1:6379[2]> ttl k1
(integer) -1
127.0.0.1:6379[2]> expire k1 10
(integer) 1
127.0.0.1:6379[2]> type k1
string
③Redis_String(单值单value)
set/get/del/append/strlen --设值/取值/删除/追加/长度
incr/decr/incrby/decrby --加1/减1/相加/相减
getrange/setrange --范围内取值/范围内设值
setex(set with expire) 键秒值/setnx(set if not exist) --set with expire/set if not exist
mset/mget/msetnx --设多值/取多值/原子性设值,要么都成功,要么都不成功
getset(先get再set) --先取值后设值
<set/get/del/append/strlen>示例:
127.0.0.1:6379> set k1 redis
OK
127.0.0.1:6379> get k1
"redis"
127.0.0.1:6379> append k1 start
(integer) 10
127.0.0.1:6379> get k1
"redisstart"
127.0.0.1:6379> strlen k1
(integer) 10
127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> get k1
(nil)
<incr/decr/incrby/decrby>示例:
127.0.0.1:6379> incr k1
(integer) 1
127.0.0.1:6379> incr k1
(integer) 2
127.0.0.1:6379> decr k1
(integer) 1
127.0.0.1:6379> incrby k1 2
(integer) 3
127.0.0.1:6379> decrby k1 2
(integer) 1
<getrange/setrange>示例:
127.0.0.1:6379> set k1 redis124
OK
127.0.0.1:6379> getrange k1 0 -1
"redis124"
127.0.0.1:6379> getrange k1 0 3
"redi"
127.0.0.1:6379> setrange k1 0 xxx
(integer) 8
127.0.0.1:6379> get k1
"xxxis124"
<setex/setnx>示例:
127.0.0.1:6379> setex k1 10 redis
OK
127.0.0.1:6379> get k1
"redis"
127.0.0.1:6379> get k1
(nil)
127.0.0.1:6379> setnx k2 redis
(integer) 1
127.0.0.1:6379> setnx k2 redis
(integer) 0
<mset/mget/msetnx>示例:
127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379> mget k1 k2 k3
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> mset k1 v1 k4 v4
OK
127.0.0.1:6379> keys *
1) "k4"
2) "k2"
3) "k1"
4) "k3"
127.0.0.1:6379> msetnx k1 v1 k5 v5
(integer) 0
127.0.0.1:6379> getset k1 v
"v1"
127.0.0.1:6379> get k1
"v"
④Redis_List(单值多value)
lpush/rpush/lrange --新增,后进先出
lpop/rpop --出栈
lindex/llen --按照索引下标获得元素(从上到下)/list长度
lrem key --删N个value
ltrim key --开始index 结束index,截取指定范围的值后再赋值给key
rpoplpush --源列表的值到目标列表
lset key index value --指定下标覆盖值
linsert key before/after 值1 值2 - -插入
<lpush/rpush/lrange>示例:
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"
<lpop/rpop>示例:
127.0.0.1:6379> lpop list1
"5"
127.0.0.1:6379> lpop list2
"1"
127.0.0.1:6379> rpop list1
"1"
127.0.0.1:6379> rpop list2
"5"
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
<lindex/llen>示例:
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> lindex list1 2
"2"
127.0.0.1:6379> llen list1
(integer) 3
<lrem>示例:
127.0.0.1:6379> lpush list3 1 1 2 2 3 3 3 4
(integer) 8
127.0.0.1:6379> lrange list3 0 -1
1) "4"
2) "3"
3) "3"
4) "3"
5) "2"
6) "2"
7) "1"
8) "1"
127.0.0.1:6379> lrem list3 2 3
(integer) 2
127.0.0.1:6379> lrange list3 0 -1
1) "4"
2) "3"
3) "2"
4) "2"
5) "1"
6) "1"
<ltrim>示例:
127.0.0.1:6379> rpush list1 1 2 3 4 5 6 7 8 9
(integer) 9
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
7) "7"
8) "8"
9) "9"
127.0.0.1:6379> ltrim list1 0 3
OK
127.0.0.1:6379> lrange list1 0 -1
1) "1"
2) "2"
3) "3"
4) "4"
<rpoplpush>示例:
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) "1"
127.0.0.1:6379> rpoplpush list1 list2
"1"
127.0.0.1:6379> lrange list2 0 -1
1) "1"
2) "2"
3) "1"
<lset>示例:
127.0.0.1:6379> lrange list1 0 -1
1) "4"
2) "3"
3) "2"
127.0.0.1:6379> lset list1 0 x
OK
127.0.0.1:6379> lrange list1 0 -1
1) "x"
2) "3"
3) "2"
<linsert>示例:
127.0.0.1:6379> rpush list1 0 1 2 3 4
(integer) 5
127.0.0.1:6379> linsert list1 before 2 java
(integer) 6
127.0.0.1:6379> lrange list1 0 -1
1) "0"
2) "1"
3) "java"
4) "2"
5) "3"
6) "4"
127.0.0.1:6379> linsert list1 after 2 oracle
(integer) 7
127.0.0.1:6379> lrange list1 0 -1
1) "0"
2) "1"
3) "java"
4) "2"
5) "oracle"
6) "3"
7) "4"
⑤Redis_Set
sadd/smembers/sismember --新增/显示/是否存在
scard --获取集合中有多少个元素
srem key value --删除集合中指定元素
srandmember key --随机出几个数(原来集合中的值还在)
spop key --随机出栈(原来集合中的值不存在)
smove key1 key2 --移动值
数学集合类:差集:sdiff 交集:sinter 并集:sunion
<sadd/smembers/sismember>示例:
127.0.0.1:6379> sadd set1 1 1 2 2 3 3
(integer) 3
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sismember set1 1
(integer) 1
<scard/srem>示例:
127.0.0.1:6379> scard set1
(integer) 3
127.0.0.1:6379> srem set1 1
(integer) 1
127.0.0.1:6379> smembers set1
1) "2"
2) "3"
<srandmember/spop>示例:
127.0.0.1:6379> smembers set1
1) "1"
2) "2"
3) "3"
4) "4"
5) "5"
6) "6"
127.0.0.1:6379> srandmember set1 4
1) "2"
2) "1"
3) "4"
4) "6"
127.0.0.1:6379> srandmember set1 4
1) "1"
2) "4"
3) "6"
4) "5"
127.0.0.1:6379> spop set1 2
1) "5"
2) "6"
127.0.0.1:6379> smembers set1
1) "1"
2) "3"
3) "4"
<smove>示例:
127.0.0.1:6379> sadd set2 x y z
(integer) 3
127.0.0.1:6379> smembers set2
1) "x"
2) "z"
3) "y"
127.0.0.1:6379> smembers set1
1) "1"
2) "3"
3) "4"
127.0.0.1:6379> smove set1 set2 1
(integer) 1
127.0.0.1:6379> smembers set1
1) "3"
2) "4"
127.0.0.1:6379> smembers set2
1) "x"
2) "1"
3) "z"
4) "y"
<sdiff/sinter/sunion>示例:
127.0.0.1:6379> sadd set1 1 2 3
(integer) 3
127.0.0.1:6379> sadd set2 1 2 a
(integer) 3
127.0.0.1:6379> sdiff set1 set2
1) "3"
127.0.0.1:6379> sinter set1 set2
1) "1"
2) "2"
127.0.0.1:6379> sunion set1 set2
1) "2"
2) "a"
3) "1"
4) "3"
⑥Redis_Hash
hset/hget/hmset/hmget/hgetall/hdel --设单值/取单值/设多值/取多值/取全部值/删除
hlen --长度
hexists key --是否存在key
hkeys/hvals --显示所有key/显示所有value
hincrby/hincrbyfloat --相加
hsetnx --不存在设值
<hset/hget/hmset/hmget/hgetall/hdel >示例:
127.0.0.1:6379> hset user name ryan
(integer) 1
127.0.0.1:6379> hset user age 21
(integer) 1
127.0.0.1:6379> hget user name
"ryan"
127.0.0.1:6379> hget user age
"21"
127.0.0.1:6379> hmset customer name kiven age 22 id 11
OK
127.0.0.1:6379> hmget customer name age id
1) "kiven"
2) "22"
3) "11"
127.0.0.1:6379> hgetall customer
1) "name"
2) "kiven"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hdel user age
(integer) 1
127.0.0.1:6379> hgetall user
1) "name"
2) "ryan"
<hlen/hexists/hkeys/hvals/>示例:
127.0.0.1:6379> hmset user name ryan age 22 id 11
OK
127.0.0.1:6379> hkeys user
1) "name"
2) "age"
3) "id"
127.0.0.1:6379> hvals user
1) "ryan"
2) "22"
3) "11"
127.0.0.1:6379> hexists user name
(integer) 1
127.0.0.1:6379> hlen user
(integer) 3
<hincrby/hincrbyfloat/hsetnx>示例:
127.0.0.1:6379> hgetall user
1) "name"
2) "ryan"
3) "age"
4) "22"
5) "id"
6) "11"
127.0.0.1:6379> hincrby user age 3
(integer) 25
127.0.0.1:6379> hget user age
"25"
127.0.0.1:6379> hincrbyfloat user age 2.3
"27.3"
127.0.0.1:6379> hsetnx user age 3
(integer) 0
127.0.0.1:6379> hsetnx user email 123@ly.com
(integer) 1
⑦Redis_ZSet(在set基础上价格上score值)
zadd/zrange(withscores) -
zrangebyscore key 开始score结束score
zrem key 某score下对应的value值,作用是删除元素
zcard/zcount key score 区间/zrank key values值,作用是获得下标值 /zscore key 对应值,获得分
zrevrank key values 值 --逆序获取下标
zrevrange
zrevrangebysocre key 结束score开始score
<zadd/zrange(withscores)>示例:
127.0.0.1:6379> zadd zset1 60 v1 70 v2 80 v3 90 v4 100 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) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
9) "v5"
10) "100"
<zrangebyscore/limit/withscores>示例:
127.0.0.1:6379> zrangebyscore zset1 60 90
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> zrangebyscore zset1 60 (90 //[60,90)
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> zrangebyscore zset1 (60 (90 //(60,90)
1) "v2"
2) "v3"
127.0.0.1:6379> zrangebyscore zset1 (60 (90 withscores
1) "v2"
2) "70"
3) "v3"
4) "80"
127.0.0.1:6379> zrangebyscore zset1 (60 (90 limit 2 2
(empty list or set)
127.0.0.1:6379> zrangebyscore zset1 60 90 limit 2 2
1) "v3"
2) "v4"
<zrem/zcard/zcount/zrank/zscore>示例:
127.0.0.1:6379> zrange zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> zrem zset1 v5
(integer) 1
127.0.0.1:6379> zrange zset1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> zcard zset1
(integer) 4
127.0.0.1:6379> zcount zset1 60 90
(integer) 4
127.0.0.1:6379> zrank zset v4
(nil)
127.0.0.1:6379> zrank zset1 v4
(integer) 3
127.0.0.1:6379> zscore zset1 v4
"90""
<zrevrank/zrevrange/zrevrangebyscore>示例:
127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "v1"
2) "60"
3) "v2"
4) "70"
5) "v3"
6) "80"
7) "v4"
8) "90"
127.0.0.1:6379> zrank zset1 v4
(integer) 3
127.0.0.1:6379> zrevrange zset1 0 -1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> zrevrangebyscore zset1 90 60
1) "v4"
2) "v3"
3) "v2"
4) "v1"