基本常识:redis有16个数据库,默认使用索引为0的数据库。
select 1 #切换数据库,1代表索引为1的数据库
dbsize #查看数据库的大小
flushdb #清空当前数据库
flushall #清空所有数据库
1、String的相关命令
127.0.0.1:6379> set name hewei #设置键值对name:hewei
OK
127.0.0.1:6379> get name #查看键为name的值
"hewei"
127.0.0.1:6379> keys * #查看所有键
1) "name"
127.0.0.1:6379> exists name #是否存在name键
(integer) 1
127.0.0.1:6379> move name 1 #移除名为name的键值对
(integer) 1
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name hewei
OK
127.0.0.1:6379> expire name 30 #设置name键值对的过期时间
(integer) 1
127.0.0.1:6379> ttl name #查看name键值对还有多少时间过期
(integer) 24
127.0.0.1:6379> get name
"hewei"
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> set name hewei
OK
127.0.0.1:6379> append name ,come #追加,没有name则创建
(integer) 10
127.0.0.1:6379> get name
"hewei,come"
127.0.0.1:6379> strlen name #查看name长度
(integer) 10
127.0.0.1:6379> set count 0
OK
127.0.0.1:6379> incr count #自增1
(integer) 1
127.0.0.1:6379> decr count #自减1
(integer) 0
127.0.0.1:6379> incrby count 10 #count+10
(integer) 10
127.0.0.1:6379> decrby count 5 #count-5
(integer) 5
127.0.0.1:6379> getrange name 0 -1 #截取指定长度,0 -1代表所有
"hewei,come"
127.0.0.1:6379> getrange name 0 2
"hew"
127.0.0.1:6379> setrange name 6 back #替换,6是开始的位置,后面的字符写多长换多长
(integer) 10
127.0.0.1:6379> get name
"hewei,back"
127.0.0.1:6379>
#setex的意思是set with expire
127.0.0.1:6379> setex hobby 30 game #设置hobby:game,30秒后过期
OK
127.0.0.1:6379> ttl hobby
(integer) 16
127.0.0.1:6379> get hobby
"game"
127.0.0.1:6379> ttl hobby
(integer) -2
127.0.0.1:6379> get hobby
(nil)
#setnx的意思是set if not exist
127.0.0.1:6379> setnx hobby game #如果没有hobby就设置
(integer) 1
127.0.0.1:6379> setnx hobby game
(integer) 0
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"
2、List相关命令
127.0.0.1:6379> lpush list one #将一个或多个值插到列表头部
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1 #查看list集合所有的值
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> rpush list four #将一个或多个值插到列表尾部
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"
127.0.0.1:6379> lpop list #移除列表的第一个元素,后面可以加index,index代表指定元素
"three"
127.0.0.1:6379> rpop list #移除列表的最后一个元素,后面可以加index
"four"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lrange mylist 0 -1
1) "banana"
2) "orange"
3) "apple"
127.0.0.1:6379> lindex mylist 1 #通过下标获取list的某一个值
"orange"
127.0.0.1:6379> lrange mylist 0 -1
1) "apple"
2) "banana"
3) "orange"
4) "apple"
127.0.0.1:6379> lrem mylist 1 apple #移除list中指定个数的value
(integer) 1
127.0.0.1:6379> lrange mylist 0 -1
1) "banana"
2) "orange"
3) "apple"
127.0.0.1:6379> lpush mylist banana
(integer) 4
127.0.0.1:6379> lrem mylist 2 banana
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "orange"
2) "apple"
3) "banana"
4) "paper"
127.0.0.1:6379> ltrim mylist 0 1 #通过下标截取指定的长度,list被改变,剩下截取后元素
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "orange"
2) "apple"
127.0.0.1:6379> lrange my 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpoplpush my you #移动列表最后一个元素到新的列表里
"1"
127.0.0.1:6379> lrange you 0 -1
1) "1"
127.0.0.1:6379> exists my #查看列表是否存在
(integer) 1
127.0.0.1:6379> exists m
(integer) 0
127.0.0.1:6379> lrange you 0 -1
1) "1"
127.0.0.1:6379> lset you 0 hello #将列表制定下标的值替换成另外一个值
OK
127.0.0.1:6379> lrange you 0 -1
1) "hello"
127.0.0.1:6379> lset you 1 hi
(error) ERR index out of range
127.0.0.1:6379> rpush list a
(integer) 1
127.0.0.1:6379> rpush list b
(integer) 2
127.0.0.1:6379> rpush list c
(integer) 3
127.0.0.1:6379> linsert list before b d #将某个具体的value插入列表中某个元素的前面或者后面
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "d"
3) "b"
4) "c"
127.0.0.1:6379> linsert list after b e
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "a"
2) "d"
3) "b"
4) "e"
5) "c"
3、set相关命令
127.0.0.1:6379> sadd set a #set集合中添加元素
(integer) 1
127.0.0.1:6379> sadd set b
(integer) 1
127.0.0.1:6379> sadd set c
(integer) 1
127.0.0.1:6379> smembers set #查看set中的所有值
1) "a"
2) "c"
3) "b"
127.0.0.1:6379> sismember set a #查看set中是否有此值
(integer) 1
127.0.0.1:6379> sismember set d
(integer) 0
127.0.0.1:6379> scard set #获取set中值的个数
(integer) 3
127.0.0.1:6379> srem set a #移除set中指定元素
(integer) 1
127.0.0.1:6379> smembers set
1) "c"
2) "b"
127.0.0.1:6379> smembers set
1) "d"
2) "a"
3) "c"
4) "b"
127.0.0.1:6379> srandmember set #随机抽出一个元素
"d"
127.0.0.1:6379> srandmember set
"b"
127.0.0.1:6379> srandmember set 2 #随机抽出指定个数的元素
1) "d"
2) "c"
127.0.0.1:6379> srandmember set 2
1) "d"
2) "b"
127.0.0.1:6379> smembers set
1) "d"
2) "a"
3) "c"
4) "b"
127.0.0.1:6379> spop set #随机删除set集合中的元素
"a"
127.0.0.1:6379> spop set
"b"
127.0.0.1:6379> smembers set
1) "d"
2) "c"
127.0.0.1:6379> smembers set
1) "a"
2) "d"
3) "b"
4) "c"
127.0.0.1:6379> smove set myset a #把set集合中的指定元素移动到myset集合中
(integer) 1
127.0.0.1:6379> smembers set
1) "d"
2) "b"
3) "c"
127.0.0.1:6379> smembers myset
1) "a"
127.0.0.1:6379> smembers set
1) "a"
2) "d"
3) "b"
4) "c"
127.0.0.1:6379> smembers myset
1) "f"
2) "d"
3) "e"
4) "c"
127.0.0.1:6379> sdiff set myset #差集
1) "a"
2) "b"
127.0.0.1:6379> sdiff myset set #差集
1) "f"
2) "e"
127.0.0.1:6379> sinter set myset #交集
1) "d"
2) "c"
127.0.0.1:6379> sunion set myset #并集
1) "d"
2) "b"
3) "a"
4) "f"
5) "e"
6) "c"
4、hash相关命令
127.0.0.1:6379> hset myhash field1 hewei #设置一个键和值
(integer) 1
127.0.0.1:6379> hget myhash field1 #获取一个指定键的值
"hewei"
127.0.0.1:6379> hmset myhash field1 hello field2 world #设置多个键和值
OK
127.0.0.1:6379> hmget myhash field1 field2 #获取多个指定键的值
1) "hello"
2) "world"
127.0.0.1:6379> hgetall myhash #获取所有的键和值
1) "field1"
2) "hello"
3) "field2"
4) "world"
127.0.0.1:6379> hdel myhash field1 #删除hash指定的键值对
(integer) 1
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
127.0.0.1:6379> hgetall myhash
1) "field2"
2) "world"
3) "f1"
4) "a"
5) "f2"
6) "b"
7) "f3"
8) "c"
127.0.0.1:6379> hlen myhash #获取hash的长度
(integer) 4
127.0.0.1:6379> hexists myhash f1 #判断hash中指定的键是否存在
(integer) 1
127.0.0.1:6379> hexists myhash f4
(integer) 0
127.0.0.1:6379> hset myhash f4 4
(integer) 1
127.0.0.1:6379> hincrby myhash f4 1 #使f4自增一
(integer) 5
127.0.0.1:6379> hsetnx myhash f3 a #没有f3键则设置键值对
(integer) 0
127.0.0.1:6379> hsetnx myhash f5 a
(integer) 1
5、zset相关命令
127.0.0.1:6379> zadd salary 3000 hgg #设置一个zset的键值对
(integer) 1
127.0.0.1:6379> zadd salary 4000 hdd
(integer) 1
127.0.0.1:6379> zadd salary 23000 hw
(integer) 1
127.0.0.1:6379> zrangebyscore salary -inf +inf #查询全部用户,从小到大排序
1) "hgg"
2) "hdd"
3) "hw"
127.0.0.1:6379> zrevrange salary 0 -1 #查询全部用户,从大到小排序
1) "hw"
2) "hdd"
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores #查询全部用户的成绩
1) "hgg"
2) "3000"
3) "hdd"
4) "4000"
5) "hw"
6) "23000"
127.0.0.1:6379> zrange salary 0 -1 #查询全部用户
1) "hgg"
2) "hdd"
3) "hw"
127.0.0.1:6379> zrem salary hgg #删除指定键值对
(integer) 1
127.0.0.1:6379> zrange salary 0 -1
1) "hdd"
2) "hw"
127.0.0.1:6379> zcard salary #获取有序集合中键值对的个数
(integer) 2
127.0.0.1:6379> zadd zset 1 hw 2 hgg 3 hdd
(integer) 3
127.0.0.1:6379> zcount zset 1 3 #获取指定区间的成员数量
(integer) 3
127.0.0.1:6379> zcount zset 1 2
(integer) 2