Redis库的操作
- set key value
插入键值对
127.0.0.1:6379[2]> set name ls
OK
- get key
返回指定key的value
127.0.0.1:6379[2]> get name
"ls"
- select index
redis中的数据库总共有16个,下标为0-15,index表示下标
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]>
- keys * .
查看当前库中所有的key
127.0.0.1:6379> keys *
1) "myset"
2) "mysort"
3) "list1"
4) "age"
5) "myset2"
6) "mylist"
- dbsize
返回仓库中key的数目
127.0.0.1:6379[1]> dbsize
(integer) 1
- move key 1
将指定key移动到1号仓库
127.0.0.1:6379[2]> keys *
1) "sex"
2) "name"
127.0.0.1:6379[2]> move sex 1
(integer) 1
127.0.0.1:6379[2]> keys *
1) "name"
127.0.0.1:6379[2]> select 1
OK
127.0.0.1:6379[1]> keys *
1) "sex"
- exists myset
检查key为myset的是否存在,如果存在返回1,如果不存在返回0
127.0.0.1:6379> exists myset
(integer) 1
- del key1 key2 key3 …
删除key,可以多个可以一个
127.0.0.1:6379[2]> keys *
1) "gender"
2) "name"
3) "age"
127.0.0.1:6379[2]> del name age
(integer) 2
127.0.0.1:6379[2]> keys *
1) "gender"
- rename gender sex
将key为gender重命名为sex
127.0.0.1:6379[2]> keys *
1) "gender"
127.0.0.1:6379[2]> rename gender sex
OK
127.0.0.1:6379[2]> keys *
1) "sex"
- expire sex 1000
将key的过期时间设置为1000秒
127.0.0.1:6379[2]> expire sex 1000
(integer) 1
- ttl sex
查看sex的到期时间
127.0.0.1:6379[2]> ttl sex
(integer) 953
- type sex
返回指定key(sex)的value的数据类型
127.0.0.1:6379[2]> type sex
string
- flushdb
删除当前数据库中所有的key
- flushall
删除所有数据库中所有的key
- info
返回服务器的信息和统计
- echo value
打印value,相当于:System.out.println(value);
频道订阅
- subscribe channel
订阅频道 ,订阅channel这个频道
127.0.0.1:6379> subscribe laoma
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "laoma"
3) (integer) 1
- psubscribe ch*
批量订阅以ch开头的频道
127.0.0.1:6379> psubscribe ch*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "ch*"
3) (integer) 1
- publish channel content
在指定的频道中发布信息
127.0.0.1:6379[1]> publish laoma good
(integer) 2
存储String常用命令
1.赋值取值
- 赋值 set key value
- 取值 get key
127.0.0.1:6379> set country china
OK
127.0.0.1:6379> get country
"china"
2.删除
- del key
127.0.0.1:6379> get message //得到key为message的value为playGame
"playGame"
127.0.0.1:6379> del message //执行删除操作
(integer) 1
127.0.0.1:6379> get message //再次get 没有得到,说明删除
(nil)
127.0.0.1:6379>
3.数值操作
- 数值递增 incr key
将指定key的value递增1,如果key不存在,则默认value的值为0.
127.0.0.1:6379> set count 90 //给count赋值为 90
OK
127.0.0.1:6379> incr count //第一次递增
(integer) 91
127.0.0.1:6379> incr count 第二次递增
(integer) 92
127.0.0.1:6379> get count //得到两次递增之后的值为 92
"92"
127.0.0.1:6379> get age //取key为age的value不存在
(nil)
127.0.0.1:6379> incr age //将age递增一次
(integer) 1
127.0.0.1:6379> get age //由于不存在key的value默认为0,所有得到age一次递增之后为1
"1"
- 数值递减 decr key
将指定的key的value递减1,如果key不存在,则默认value的值为0
127.0.0.1:6379> get count //count的初始值为92
"92"
127.0.0.1:6379> decr count
(integer) 91
127.0.0.1:6379> decr count
(integer) 90
127.0.0.1:6379> get count //经过两次递减之后的值为90
"90"
127.0.0.1:6379> decr age1 //由于age1 这个key不存在,默认value为0开始递减
(integer) -1
127.0.0.1:6379> get age1 //递减后的值为-1
"-1"
- 数值加法 incrby key num
将指定key的value增加num,如果key不存在,则默认value为0,再增加num。
127.0.0.1:6379> get count //count的初始值为90
"90"
127.0.0.1:6379> incrby count 10
(integer) 100
127.0.0.1:6379> get count //经过增加10之后,得到的值为100
"100"
127.0.0.1:6379> get count1 //count1 不存在
(nil)
127.0.0.1:6379> incrby count1 10 //给count1的value增加10
(integer) 10
127.0.0.1:6379> get count1 //得到增加之后的值为10
"10"
- 数值减法 decrby key num
将指定key 的value减掉num,如果key不存在,则默认value为0。
127.0.0.1:6379> get count
"100"
127.0.0.1:6379> decrby count 10
(integer) 90
127.0.0.1:6379> get count
"90"
127.0.0.1:6379> get count2
(nil)
127.0.0.1:6379> decrby count2 10
(integer) -10
127.0.0.1:6379> get count2
"-10"
4.字符串追加
- append key vul
将指定key的value后面追加vul,这不是数值的加减,是字符串后面的追加。
127.0.0.1:6379> get country
"china"
127.0.0.1:6379> append country Good!
(integer) 10
127.0.0.1:6379> get country
"chinaGood!"
5.扩展命令
- getset key value
先获取key再进行赋值
127.0.0.1:6379> get country
"chinaGood!"
127.0.0.1:6379> getset country china //先得到country的值在对它赋值为china
"chinaGood!"
127.0.0.1:6379> get country
"china"
存储Hash常用命令
1.存储
- hset ishash key1 value1 key2 value2 key3 value3 …
将key value键值对存储到myhash中,可以一次存入多个键值对。
127.0.0.1:6379> hset ishash name xiaoming age 10 address beijing
(integer) 3
2.取值
- hget ishash key
获得ishash中key的value。
127.0.0.1:6379> hget ishash name
"xiaoming"
- hmget ishash key1 key2 key3 …
获得ishash中多个key的value。
127.0.0.1:6379> hmget ishash name age address
1) "xiaoming"
2) "10"
3) "beijing"
- hgetall ishash
获得ishash中全部的key跟value。
127.0.0.1:6379> hgetall ishash
1) "name"
2) "xiaoming"
3) "age"
4) "10"
5) "address"
6) "beijing"
3. 删除
- hdel ishash key1 key2 key3 …
删除ishash中指定的key,key可以为一个,也可以为多个。
127.0.0.1:6379> hgetall ishash
1) "name"
2) "xiaoming"
3) "age"
4) "10"
5) "address"
6) "beijing"
7) "number"
8) "10"
9) "num"
10) "20"
11) "age1"
12) "20"
13) "age2"
14) "90"
15) "age3"
16) "89"
127.0.0.1:6379> hdel ishash age1 age2
(integer) 2
127.0.0.1:6379> hgetall ishash //删除ishash中的age1 跟 age2之后得到的结果
1) "name"
2) "xiaoming"
3) "age"
4) "10"
5) "address"
6) "beijing"
7) "number"
8) "10"
9) "num"
10) "20"
11) "age3"
12) "89"
- del myhash
删除myhash以及其中的key跟value。
127.0.0.1:6379> hgetall myhash
1) "name"
2) "laoma"
3) "age"
4) "20"
del myhash
(integer) 1
127.0.0.1:6379> hgetall myhash
(empty list or set)
4.增加
- hincrby ishash key num
将ishash中指定key的value增加num
127.0.0.1:6379> hget ishash age
"10"
127.0.0.1:6379> hincrby ishash age 2
(integer) 12
127.0.0.1:6379> hget ishash age
"12"
5.检查key是否存在
- hexists ishash key
检查ishash中的key是否存在,如果存在返回1,如果不存在返回0
127.0.0.1:6379> hexists ishash name
(integer) 1
127.0.0.1:6379> hexists ishash name1
(integer) 0
6.hash中key的数量
- hlen ishash
返回ishash中key-value的个数
127.0.0.1:6379> hlen ishash
(integer) 6
7.得到hash中所有的key或者value
- hkeys ishash
返回ishash中所有的key
127.0.0.1:6379> hkeys ishash
1) "name"
2) "age"
3) "address"
4) "number"
5) "num"
6) "age3"
- hvals ishash
返回ishash中所有的value
127.0.0.1:6379> hvals ishash
1) "xiaoming"
2) "12"
3) "beijing"
4) "10"
5) "20"
6) "89"
存储list(链表)常用命令
1.两端添加
- lpush islist value1 value2 value3 …
向链表中添加数据,如果islist存在,更新islist,如果islist不存在,则创建
127.0.0.1:6379> lpush islist a b c d e f g 1 2 3 4 5
(integer) 12
2.查看
- lrange islist 0 3
查看下标为0 到 3 的元素
- lrange islist 0 -1
查看所有的元素,-1表示最后以为,-2表示倒数第二位,以此类推
127.0.0.1:6379> lrange islist 0 3
1) "5"
2) "4"
3) "3"
4) "2"
127.0.0.1:6379> lrange islist 0 -1 //由于链表的特性,添加的数据顺序是这样(不知道怎么形容0.0)
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "g"
7) "f"
8) "e"
9) "d"
10) "c"
11) "b"
12) "a"
3.两端弹出
- lpop islist
从下标为0开始弹出,返回弹出的数据,做弹出操作后,islist中不再存在弹出的数据
127.0.0.1:6379> lrange islist 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "g"
7) "f"
8) "e"
9) "d"
10) "c"
11) "b"
12) "a"
127.0.0.1:6379> lpop islist
"5"
127.0.0.1:6379> lpop islist
"4"
127.0.0.1:6379> lrange islist 0 -1
1) "3"
2) "2"
3) "1"
4) "g"
5) "f"
6) "e"
7) "d"
8) "c"
9) "b"
10) "a"
4.获得list中元素的个数
- llen islist
返回islist中元素的个数
127.0.0.1:6379> llen islist
(integer) 10
5.插入数据
- lpushx islist value
向islist中插入value,如果islist存在,则插入value到头部,如果islist不存在,不插入value,也不会创建islist
127.0.0.1:6379> lpushx islist aa
(integer) 11
127.0.0.1:6379> lrange islist 0 -1
1) "aa"
2) "3"
3) "2"
4) "1"
5) "g"
6) "f"
7) "e"
8) "d"
9) "c"
10) "b"
11) "a"
- rpushx islist value
向islist中插入value,如果islist存在,则插入value到尾部,如果islist不存在,不插入value,也不会创建islist
127.0.0.1:6379> rpushx islist weibu
(integer) 12
127.0.0.1:6379> lrange islist 0 -1
1) "aa"
2) "3"
3) "2"
4) "1"
5) "g"
6) "f"
7) "e"
8) "d"
9) "c"
10) "b"
11) "a"
12) "weibu"
6.删除
- lrem islist count val
删除count个value为val的元素
count > 0 从头部开始删除count个value为val的元素
count < 0 从尾部开始删除count个value为val的元素
count = 0 删除所有value为val的元素
127.0.0.1:6379> lrange lllist 0 -1
1) "b"
2) "b"
3) "a"
4) "a"
5) "a"
127.0.0.1:6379> lrem lllist 2 a
(integer) 2
127.0.0.1:6379> lrange lllist 0 -1
1) "b"
2) "b"
3) "a"
127.0.0.1:6379>
7.指定位置插入和修改
- lset mylist index val
修改mylist中下标为index位置的元素值为val,下标从0开始
127.0.0.1:6379> lrange mylist 0 -1
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lset mylist 3 change
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "f"
2) "e"
3) "d"
4) "change"
5) "b"
6) "a"
- linsert mylist before value val
向mylist中value的前面插入val
- linsert mylist after value val
向mylist中value的后面插入val
127.0.0.1:6379> lrange mylist 0 -1
1) "f"
2) "e"
3) "d"
4) "change"
5) "b"
6) "a"
127.0.0.1:6379> linsert mylist before change bef
(integer) 7
127.0.0.1:6379> linsert mylist after change aft
(integer) 8
127.0.0.1:6379> lrange mylist 0 -1
1) "f"
2) "e"
3) "d"
4) "bef"
5) "change"
6) "aft"
7) "b"
8) "a"
8.弹出放入指定list
- rpoplpush list1 list2
将list1中的元素(从尾部开始)弹出之后放入list2中
127.0.0.1:6379> lrange islist 0 -1
1) "aa"
2) "3"
3) "2"
4) "1"
5) "g"
6) "f"
7) "e"
8) "d"
9) "c"
127.0.0.1:6379> rpoplpush islist mylist
"c"
127.0.0.1:6379> lrange mylist 0 -1
1) "c"
2) "b"
3) "weibu"
4) "f"
5) "e"
6) "d"
7) "bef"
8) "change"
9) "aft"
10) "b"
11) "a"
存储Set常用命令
Set中不能出现重复元素,并且没有序
1. 添加、查看、删除元素
- sadd myset val1 val2 val3 …
向myset中添加数据,一次行可以添加多个,但是不能有重复元素,负责报错
127.0.0.1:6379> sadd myset a b c 1 2 3
(integer) 6
- smembers myset
查看myset中所有的元素
127.0.0.1:6379> smembers myset
1) "b"
2) "1"
3) "c"
4) "2"
5) "a"
6) "3"
- sismember myset a
检查myset中是否含有a这个元素,返回1则表示存在,返回0表示不存在
127.0.0.1:6379> sismember myset a
(integer) 1
2.差集、交集、并集
- sdiff myset myset2
求出myset跟myset2的差集
127.0.0.1:6379> smembers myset
1) "c"
2) "b"
3) "2"
4) "a"
5) "1"
6) "3"
127.0.0.1:6379> smembers myset2
1) "c"
2) "a"
3) "2"
4) "3"
127.0.0.1:6379> sdiff myset myset2
1) "b"
2) "1"
- sinter myset myset2
求出myset跟myset2的交集
127.0.0.1:6379> smembers myset
1) "c"
2) "b"
3) "2"
4) "a"
5) "1"
6) "3"
127.0.0.1:6379> smembers myset2
1) "c"
2) "a"
3) "2"
4) "3"
127.0.0.1:6379> sinter myset myset2
1) "c"
2) "a"
3) "2"
4) "3"
- sunion myset myset2
求出myset跟myset2的并集
127.0.0.1:6379> smembers myset2
1) "c"
2) "2"
3) "f"
4) "g"
5) "a"
6) "3"
127.0.0.1:6379> smembers myset
1) "c"
2) "b"
3) "2"
4) "a"
5) "1"
6) "3"
127.0.0.1:6379> sunion myset myset2
1) "f"
2) "b"
3) "2"
4) "g"
5) "a"
6) "1"
7) "3"
8) "c"
3.扩展命令
- scard myset
返回myset中元素的个数
127.0.0.1:6379> scard myset
(integer) 6
- srandmember myset
随机返回myset中的某个元素
127.0.0.1:6379> srandmember myset
"1"
127.0.0.1:6379> srandmember myset
"a"
127.0.0.1:6379> srandmember myset
"c"
- sdiffstore setc seta setb
将seta与setb的差集存到setc中,覆盖setc中原有的元素
127.0.0.1:6379> smembers seta
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> smembers setb
1) "d"
2) "c"
3) "b"
127.0.0.1:6379> smembers setc
1) "f"
127.0.0.1:6379> sdiffstore setc seta setb
(integer) 1
127.0.0.1:6379> smembers setc
1) "a"
- sinterstore setc seta setb
将seta与setb的交集存到setc中,覆盖setc中原有的元素
127.0.0.1:6379> smembers seta
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> smembers setb
1) "d"
2) "c"
3) "b"
127.0.0.1:6379> smembers setc
1) "a"
127.0.0.1:6379> sinterstore setc seta setb
(integer) 2
127.0.0.1:6379> smembers setc
1) "c"
2) "b"
- sunionstroe setc seta setb
将seta与setb的并集存到setc中,覆盖setc中原有的元素
127.0.0.1:6379> smembers seta
1) "c"
2) "a"
3) "b"
127.0.0.1:6379> smembers setb
1) "d"
2) "c"
3) "b"
127.0.0.1:6379> smembers setc
1) "c"
2) "b"
127.0.0.1:6379> sunionstore setc seta setb
(integer) 4
127.0.0.1:6379> smembers setc
1) "b"
2) "c"
3) "a"
4) "d"
Sorted-Set常用命令
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。
1.添加
- 添加元素:zadd mysort 10 a 20 b 30 c 40 d
分数对应后面的value,根据分数插入数据
127.0.0.1:6379> zadd mysort 10 a 20 b 30 c 40 d
(integer) 4
127.0.0.1:6379> zadd mysort 10 gg
(integer) 1
2.查看元素
- zscore mysort a
返回mysort中value为a的分数
127.0.0.1:6379> zscore mysort a
"10"
- zcard mysort
返回mysort中元素的个数
127.0.0.1:6379> zcard mysort
(integer) 5
- zrange mysort 0 -1
查看所有的元素,下标从0开始到-1结束,-1表示倒数第一个元素
127.0.0.1:6379> zrange mysort 0 -1
1) "a"
2) "gg"
3) "b"
4) "c"
5) "d"
- zrange mysort 0 -1 withscores
查看所有元素并且带分数
127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "a"
2) "10"
3) "gg"
4) "10"
5) "b"
6) "20"
7) "c"
8) "30"
9) "d"
10) "40"
- zrevrange mysort 0 -1 withscores
从大到小排序查看
127.0.0.1:6379> zrevrange mysort 0 -1 withscores
1) "d"
2) "40"
3) "c"
4) "30"
5) "b"
6) "20"
7) "gg"
8) "10"
9) "a"
10) "10"
- zrangebyscore mysort 0 20
查看分数0-20的元素
127.0.0.1:6379> zrangebyscore mysort 0 20
1) "a"
2) "gg"
3) "b"
- zrangebyscore mysort 0 20 withscores
查看分数0-20的分数跟元素
127.0.0.1:6379> zrangebyscore mysort 0 20 withscores
1) "a"
2) "10"
3) "gg"
4) "10"
5) "b"
6) "20"
- zrangebyscore mysort 0 20 withscores limit 0 2
分组显示2个数据
127.0.0.1:6379> zrangebyscore mysort 0 20 withscores limit 0 2
1) "a"
2) "10"
3) "gg"
4) "10"
- zcount mysort 10 20
返回分数在10-20之间的元素的个数
127.0.0.1:6379> zcount mysort 10 20
(integer) 3
3.删除
- zremrangebyrank mysort 0 4
按照下标的范围进行删除
127.0.0.1:6379> zrange mysort 0 -1
1) "a"
2) "gg"
3) "b"
4) "c"
5) "d"
127.0.0.1:6379> zremrangebyrank mysort 0 1
(integer) 2
127.0.0.1:6379> zrange mysort 0 -1
1) "b"
2) "c"
3) "d"
- zremrangebyscore mysort 30 40
按照分数范围删除
127.0.0.1:6379> zremrangebyscore mysort 30 40
(integer) 2
127.0.0.1:6379> zrange mysort 0 -1
1) "b"
- zrem mysort b d
删除mysort中的b跟d两个元素
127.0.0.1:6379> zrange mysrot 0 -1
1) "d"
2) "f"
3) "i"
127.0.0.1:6379> zrem mysrot d
(integer) 1
127.0.0.1:6379> zrange mysrot 0 -1
1) "f"
2) "i"
4.扩展
- zincrby mysrot 4 f
给f的分数增加4
127.0.0.1:6379> zrange mysrot 0 -1 withscores
1) "f"
2) "14"
3) "i"
4) "17"
127.0.0.1:6379> zincrby mysrot 4 f
"18"
127.0.0.1:6379> zrange mysrot 0 -1 withscores
1) "i"
2) "17"
3) "f"
4) "18"
如果有错请指出,谢谢!0.0