1、String 类型
赋值语法:SET key value
127.0.0.1:6379> set k1 zhangsan
OK
取值语法: GET key
127.0.0.1:6379> get k1 "zhangsan"
设置多个键语法: MSET key value [key value …]
127.0.0.1:6379> mset k2 lisi k3 wangwu
OK
获取多个键值语法: MGET key [key …]
127.0.0.1:6379> mget k2 k3
1) "lisi"
2) "wangwu"
删除语法:DEL key
127.0.0.1:6379> del k3
(integer) 1
127.0.0.1:6379> get k3
(nil)
2、字符串数字的递增与递减
递增数字:当存储的字符串是整数时,Redis提供了一个实用的命令INCR,其作用是让当前键值递增,并返回递增后的值。
递增数字语法: INCR key
递减数值语法: DECR key
增加指定的整数语法: INCRBY key increment
减少指定的整数 语法:DECRBY key decrement
递增
127.0.0.1:6379> incr num (integer) 1 127.0.0.1:6379> incr num
(integer) 2
递减
127.0.0.1:6379> decr num
(integer) 1
指定步长:(了解)
127.0.0.1:6379> incrby num2 2
(integer) 2
127.0.0.1:6379> incrby num2 3
(integer) 5
127.0.0.1:6379> decrby num2 2
(integer) 3
127.0.0.1:6379> decrby num2 1
(integer) 2
3、Hash散列(了解)
hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。相当于是对象格式的存储
赋值语法: HSET key field value
-
设置一个字段值, HSET命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0.
127.0.0.1:6379> hset user1 username zhangsan
(integer) 1
127.0.0.1:6379> hset user1 username lisi
(integer) 0
取值语法: HGET key field
127.0.0.1:6379> hget user1 username
"lisi"
设置多个字段语法: HMSET key field value [field value ...]
127.0.0.1:6379> hmset user1 password 123 age 20
OK
取多个值语法: HMGET key field [field ...]
127.0.0.1:6379> hmget user1 password age
1) "123"
2) "20"
获取所有字段值语法:HGETALL key
127.0.0.1:6379> hgetall user1
1) "username"
2) "lisi"
3) "password"
4) "123"
5) "age"
6) "20"
删除字段语法:HDEL key field [field ...]
127.0.0.1:6379> hdel user1 username
(integer) 1
127.0.0.1:6379> hgetall user1
1) "password"
2) "123"
3) "age"
4) "20"
可以支持部分修改。
4、队列List
Redis的list是采用来链表来存储,双向链表存储数据,特点:增删快、查询慢(Linkedlist).这个队列是有序的。
向列表左边增加元素: LPUSH key value [value ...]
从列表左边弹出元素: LPOP key(临时存储,弹出后,从队列中清除)
127.0.0.1:6379> lpush alist a1 a2 123
(integer) 3
127.0.0.1:6379> lpop alist
"123"
127.0.0.1:6379> lpop alist
"a2"
向列表右边增加元素 : RPUSH key value [value ...]
从列表右边弹出元素: RPOP key
127.0.0.1:6379> rpush blist a1 a2 345
(integer) 3
127.0.0.1:6379> rpop blist
"345"
获取列表中元素的个数: LLEN key
127.0.0.1:6379> llen blist
(integer) 1
查看列表语法:LRANGE key start stop
127.0.0.1:6379> lrange blist 0 3
1) "a2"
-
将返回start、stop之间的所有元素(包含两端的元素),索引从0开始,可以是负数,如:“-1”代表最后的一个元素。
示例: LPUSH comment1 ‘{“id”:1,“name”:“商品","date":1430295077289}'
临时存储。先进先出。使用双向链表:
1,左边进,右边去
127.0.0.1:6379> lpush stulist stu1
(integer) 1
127.0.0.1:6379> lpush stulist stu2
(integer) 2
127.0.0.1:6379> lpush stulist stu3
(integer) 3
127.0.0.1:6379> lpush stulist stu4
(integer) 4
127.0.0.1:6379> lpush stulist stu4
(integer) 5
127.0.0.1:6379> lpush stulist stu5
(integer) 6
127.0.0.1:6379> rpop stulist
"stu1"
127.0.0.1:6379> rpop stulist
"stu2"
127.0.0.1:6379> rpop stulist
"stu3"
127.0.0.1:6379> rpop stulist
"stu4"
2,右边进,左边去。
127.0.0.1:6379> rpush clist stu1
(integer) 1
127.0.0.1:6379> rpush clist stu2
(integer) 2
127.0.0.1:6379> rpush clist stu3
(integer) 3
127.0.0.1:6379> rpush clist stu4
(integer) 4
127.0.0.1:6379> rpush clist stu5
(integer) 5
127.0.0.1:6379> lpop clist
"stu1"
127.0.0.1:6379> lpop clist
"stu2"
5、Set集合
Set集合类型:无序、不可重复
增加元素语法:SADD key member [member ...]
删除元素语法: SREM key member [member ...]
获得集合中的所有元素 : smembers key
127.0.0.1:6379> sadd ulist user1
(integer) 1
127.0.0.1:6379> sadd ulist user2
(integer) 1
127.0.0.1:6379> sadd ulist user3
(integer) 1
127.0.0.1:6379> smembers ulist
1) "user2"
2) "user3"
3) "user1"
127.0.0.1:6379> srem ulist user2
(integer) 1
127.0.0.1:6379> smembers ulist
1) "user3"
2) "user1"
判断元素是否在集合中: SISMEMBER key member
127.0.0.1:6379> smembers ulist
1) "user3"
2) "user1"
127.0.0.1:6379> sismember ulist user2
(integer) 0
127.0.0.1:6379> sismember ulist user1
(integer) 1
6、Zset有序集合(了解)
Sortedset又叫zset,是有序集合,可排序的,但是唯一。 Sortedset和set的不同之处,是会给set中的元素添加一个分数,然后通过这个分数进行排序。
增加元素:ZADD key score member [score member ...]
-
向有序集合中加入一个元素和该元素的分数(score),如果该元素已经存在则会用新的分数替换原有的分数。
127.0.0.1:6379> zadd num1 20 stu1 30 stu2 40 stu3
(integer) 3
添加带分数(可用学生成绩,销售数量等来做分数,方便计算排序):
获得排名在某个范围的元素列表,并按照元素分数降序返回
语法:ZREVRANGE key start stop [WITHSCORES]
127.0.0.1:6379> zadd num1 10 stu4
(integer) 1
127.0.0.1:6379> zrevrange num1 0 4
1) "stu3"
2) "stu2"
3) "stu1"
4) "stu4"
获取元素的分数 :ZSCORE key member
127.0.0.1:6379> zscore num1 stu2
"30"
删除元素ZREM key member [member ...]
127.0.0.1:6379> zrem num1 stu2
(integer) 1
127.0.0.1:6379> zrevrange num1 0 4
1) "stu3"
2) "stu1"
3) "stu4"
获得元素的分数的可以在命令尾部加上WITHSCORES参数
127.0.0.1:6379> zrevrange num1 0 4 withscores
1) "stu3"
2) "40"
3) "stu1"
4) "20"
5) "stu4"
6) "10"