这一篇文章我们主要是来整理下Redis的一些常用命令。
./src/redis-server redis.conf
./src/redis-cli -h 127.0.0.1 -p 6379
String 数据类型主要用在做缓存,计数器,分布式锁,分布式ID等等
set key value
例如: set testkey testvalue
get key
例如:get testkey
在这里插入图片描述
del key
例如:del testkey
setnx key value
例如:127.0.0.1:6379> setnx username zhangsan
(integer) 1
setex key time value
例如:
127.0.0.1:6379> setex username 1 lisi
incr key
incrby key increment
例如:127.0.0.1:6379> incr age
decr key
decrby key decrement
例如:
127.0.0.1:6379> decr age
(integer) 1
127.0.0.1:6379> decrby age 3
(integer) -2
Redis hash 是一个键值对集合,Redis hash是一个String类型的field和value的映射表,hash特别适合存储对象,例如SpringSession中的session信息,存储用户信息,用户主页访问量等等。
hset key field value
例如:HSET company:1 companyname alibaba
hmset key field1 value1 [field2 value2 field3 value3 ......fieldn valuen]
例如:HMSET user:1 username zhangsna age 12
HGET key field
例如:
127.0.0.1:6379> HGET company:1 companyname
"alibaba"
hmget key field1 field2 fieldN
例如:
127.0.0.1:6379> HMGET user:1 username age
1) "zhangsna"
2) "12"
hgetall key
例如:
127.0.0.1:6379> HGETALL user:1
1) "username"
2) "zhangsna"
3) "age"
4) "12"
hdel key field[field ....]
例如:127.0.0.1:6379> hdel company:1 companyname
(integer) 1
字符串列表,按照插入顺序,添加一个元素到列表的头部(左边)或者尾部(右边),可以用于微博关注人,微博时间轴列表 充当队列的原理 左侧入队列
stringRedisTemplate.opsForList().leftPush(key, value)
右侧出队列
stringRedisTemplate.opsForList().rightPop(key)
lpush key value1 [value2]
例如:127.0.0.1:6379> lpush order 111 222
(integer) 2
lrange key start stop
例如:127.0.0.1:6379> lrange order 0 1
1) "222"
2) "111"
lrem key count value
例如:127.0.0.1:6379> lrem order 1 111
(integer) 1
lset key index value
例如:127.0.0.1:6379> lset order 0 123
OK
rpop key
例如:127.0.0.1:6379> rpop order
"123"
rpush key value1 [value2]
例如:127.0.0.1:6379> rpush student zhangsan lisi wanger
(integer) 3
set 集合是String类型的无序集合,集合是通过哈希表实现的。所以添加,删除,查找的复杂度都是O(1)。set 集合一般用于,赞,踩,标签等场景
sadd key member [member ...]
例如:127.0.0.1:6379> sadd myset test
(integer) 1
smembers key
例如:127.0.0.1:6379> smembers myset
1) "test"
srem key member [member ...]
例如:127.0.0.1:6379> srem myset test
(integer) 1
scard key
例如:127.0.0.1:6379> scard key
(integer) 0
smove source destionation member
例如:
127.0.0.1:6379> smembers myset
1) "test1"
127.0.0.1:6379> smembers myset1
(empty list or set)
127.0.0.1:6379> smove myset myset1 test1
(integer) 1
127.0.0.1:6379> smembers myset1
1) "test1"
Redis zset和set一样也是String类型元素的集合,且不允许重复的成员,不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序的。
ZADD key [NX|XX] [CH] [INCR] score member [score member ...]
例如:127.0.0.1:6379> ZADD city:gdp 95 "beijing" 92 "shanghai" 89 "shengzhen"
(integer) 3
ZINCRBY key increment member
例如:127.0.0.1:6379> zincrby city:gdp 3 "beijing"
"98"
ZCARD key
例如:127.0.0.1:6379> ZCARD city:gdp
(integer) 3
zcount key min max
例如:127.0.0.1:6379> zcount city:gdp 90 99
(integer) 2
ZREM key member [member ..]
例如:127.0.0.1:6379> zrem city:gdp "beijing"
(integer) 1
sort mylist
例如:
127.0.0.1:6379> lpush mylist 1 2 3 4
(integer) 4
127.0.0.1:6379> lpush mylist 1 2 3 4 12 10 9
(integer) 11
127.0.0.1:6379> sort mylist
1) "1"
2) "1"
3) "2"
4) "2"
5) "3"
6) "3"
7) "4"
8) "4"
9) "9"
10) "10"
11) "12"
sort mylist alpha desc limit 0 2
本文主要介绍了Redis中各种常见的命令,Redis 有五种数据类型,每种数据类型都有不同的操作命令。