Redis的基本命令
1.String类型
语法 | 说明 | 用法 |
---|---|---|
set,get | 赋值,取值 | set s1 111 | get s1 |
mset,mget | 多值操作 | mset s1 111 s2 222 s3 333 | mget s1 s3 |
del | 删除 | del s1 |
incr,decr | 数值增减(步长) | incr s1 | decr s1 | ince s1 5 |
append | 向尾部追加值,返回总长度。若该键不存在,则新建 | append s1 world |
strlen | 获取字符串长度,不存在则返回0 | strlen s1 |
2.Hash(散列)类型
hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。
语法 | 说明 | 使用 |
---|---|---|
hset | 插入或更新。一次只能设置一个字段值。插入返回1,更新返回0 | hset user username zhangsan |
hmset | 一次插或修改入多个字段 | hset user username zhangsan password 123 |
hsetnx | 作用类似hset.不同的是该命令不会去修改已存在的字段 | hsetnx user username jack |
hget | 取值,一次只能取一个字段 | hget user username |
hmget | 一次取多个字段 | hmget user username password |
hgetall | 获取所有字段值,返回所有的key,value | hgetall user1 |
hdel | 可以删除一个或多个字段,返回值是被删除的字段个数 | hdel user1 usernaem password |
hincrby | 按步长(必填),增加数字,返回增长后的结果 | hincrby user1 age 5 |
hexists | 查看字段是否存在。存在返回1,不存在返回0 | hexits users age |
hkeys,hvals | 获取字段名或字段值 | hkeys user1 | hvals user1 |
hlen | 获取字段数目 | hlen user1 |
3.List类型
Redis的list是采用来链表来存储的,所以对于redis的list数据类型的操作,是操作list的两端数据来操作的。
语法 | 说明 | 使用 |
---|---|---|
LPUSH|RPUSH key value [value …] | 向列表左右两端添加元素 | lpush list1 1 2 3 |
LPOP key|RPOP key | 从列表的左(右)端弹出一个元素,并返回该值。 | LPOP list |
LRANGE key start stop | 查看列表,索引从0开始。 索引可以是负数,-1代表最后一个元素。 | |
LLEN key | 获取列表中元素的个数 | llen l1 |
LREM key count value | 删除前count个值为value的元素 返回实际删除的元素个数。 | LREM l1 0 3 |
LINDEX key index | 获得指定索引的元素 | LINDEX l1 3 |
LSET key index value | 设置指定索引的元素值 | LSET l1 1 6 |
LTRIM key start stop | 只保留列表指定的片段 | LTRIM L1 0 3 |
LINSERT key BEFORE|AFTER pivot value | 向列表中插入元素。先找值为pivot的元 素再向前(后)插入值 | LINSERT l1 before 2 3 |
RPOPLPUSH source destination | 将单个元素从一个列表转移到另一个列表 | RPOPLPUSH l1 l2 |
特别指出:
LREM key count value
count的取值 | >0 | <0 | =0 |
---|---|---|---|
从左开始删 | 从右开始删 | 删除所有值为value的元素 |
当count>0,从左开始删,count<0从右开始删删。count=0,删除所有对应元素
4. Set
集合类型
区分:
集合类型:无序、不可重复
列表类型:有序、可重复
语法 | 说明 | 使用 |
---|---|---|
SADD key member [member …] | 添加元素 | SADD set1 a b c |
SREM key member [member …] | 删除元素 | SREM set1 b c |
SMEMBERS key | 获取集合的所有元素 | SMEMBERS set1 |
SISMEMBER key member | 判断元素是否在集合中。在集合中返回1,不在返回0 | SISMEMBER set1 a |
SDIFF key [key …] | 集合的差集运算 A-B,返回属于A但不属于B的元素 | SDIFF SETA SETB |
SINTER key [key …] | 集合的交集运算,返回既属于A又属于B的元素 | SINTER SET1 SET2 |
SUNION key [key …] | 集合的并集运算 A ∪ B | SUNION SET1 SET2 |
SCARD key | 获得集合的元素个数 | SCARD SET1 |
SPOP key | 从集合中随机弹出一个元素 | SPOP SET1 |
5.Sortedset
Sortedset又叫zset。
Sortedset是有序集合,可排序的,但是唯一。
Sortedset和set的不同之处,是会给set中的元素添加一个分数,然后通过这个分数进行排序。
语法 | 说明 | 使用 |
---|---|---|
ZADD key score member [score member …] | 向有序集合中加入一个元素 和该元素的分数 | ZADD zset1 97 lisi |
ZSCORE key member | 获取元素的分数 | ZSCORE zset1 lisi |
ZREM key member [member …] | 删除元素 | ZREM zset1 lisi jack |
ZRANGE key start stop [WITHSCORES] | 按照元素分数从小到大的顺序 返回索引从start到stop之间的 所有元素,含两端 | ZRANGE zset1 0 2 |
ZREVRANGE key start stop [WITHSCORES] | 按照元素分数从大到小的顺序 返回索引从start到stop之间的 所有元素,含两端 | ZREVRANGE zset1 0 2 |
ZRANK key member | 从小到大获得元素的排名(0开始) | ZRANK zset1 jack |
ZREVRANK key member | 从大到小获得元素的排名(0开始) | ZRANK zset1 jack |
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count] | 获得指定分数范围的元素 | ZRANGEBYSCORE zset1 75 90 limit 0 2 |
ZINCRBY key increment member | 增加某个元素的分数 | ZINCRBY zset1 6 rose |
ZCARD key | 获得集合中元素的个数 | ZCARD zset1 |
ZCOUNT key min max | 获得指定分数范围内的元素个数 | ZCOUNT zset1 80 99 |
ZREMRANGEBYRANK key start stop | 按排名范围删除元素 | ZRENRANGEBYRANK zset1 0 1 |
ZREMRANGEBYSCORE key min max | 按分数范围删除元素 | ZREMRANGEBYSCORE zset1 |
60 70
6. 其它命令
6.1 其它常用命名
语法 | 说明 | 使用 |
---|---|---|
keys * | 返回满足给定pattern 的所有key | keys list* |
exists key | 确认一个key 是否存在 | exists s1 |
del key | 删除一个key | del s1 |
rename key newkey | 重命名一个key | rename key new_key |
type | 返回值得类型 | type zset1 |
6.2 设置key的生存时间
Redis在实际使用过程中更多的用作缓存,然而缓存的数据一般都是需要设置生存时间的,即:到期后数据销毁。
语法 | 说明 |
---|---|
EXPIRE key seconds | 设置key的生存时间(单位:秒),即多少秒后key会自动删除 |
TTL key | 查看key剩余的生存时间 |
PERSIST key | 清除key的剩余时间,即永久有效 |
PEXPIRE key milliseconds | 生存时间设置单位为:毫秒 |