一、实现功能
Redis数据库常用数据结构,以及基本用法
二、string
1. 添加和查询
127.0.0.1:6379> set school hanguang
OK
127.0.0.1:6379> get school
"hanguang"
2.删除
127.0.0.1:6379> del school
(integer) 1
3.自增和自减1
127.0.0.1:6379> set score 1
OK
127.0.0.1:6379> incr score
(integer) 2
127.0.0.1:6379> decr score
(integer) 1
4.增加或减少指定数目
127.0.0.1:6379> incrby score 5
(integer) 6
127.0.0.1:6379> decrby score 3
(integer) 3
5.后续悬挂:添加指定字符,返回是添加字符后字符串长度
127.0.0.1:6379> append score 1
(integer) 2
127.0.0.1:6379> get score
"31"
三、hash
1.赋值
-》单个赋值
127.0.0.1:6379> hset people zhangsan 13
(integer) 1
127.0.0.1:6379> hset people lisi 4
(integer) 1
127.0.0.1:6379> hset people wangwu 25
(integer) 1
-》批量赋值
127.0.0.1:6379> hmset people2 zhangsan 13 lisi 4 wangwu 15
OK
2.取值
-》取一个值
127.0.0.1:6379> hget people lisi
"4"
-》取多个值
127.0.0.1:6379> hmget people zhangsan lisi
1) "13"
2) "4"
-》获得hashmap对象的所有对象
127.0.0.1:6379> hgetall people
1) "zhangsan"
2) "13"
3) "lisi"
4) "4"
5) "wangwu"
6) "25"
3.删除
127.0.0.1:6379> hdel people zhangsan lisi
(integer) 2
127.0.0.1:6379> hgetall people
1) "wangwu"
2) "25"
-》删除不存在字段
127.0.0.1:6379> hdel people zhangsan
(integer) 0
-》删除整个hash集合
127.0.0.1:6379> del people
(integer) 1
127.0.0.1:6379> keys *
1) "people2"
2) "score"
4.增加数字
127.0.0.1:6379> hincrby people2 lisi 5
(integer) 9
127.0.0.1:6379> hgetall people2
1) "zhangsan"
2) "13"
3) "lisi"
4) "9"
5) "wangwu"
6) "15"
5.其他常用
-》判断是否含有某个键:1含有,0不含有
127.0.0.1:6379> hgetall people2
1) "zhangsan"
2) "13"
3) "lisi"
4) "9"
5) "wangwu"
6) "15"
127.0.0.1:6379> hexists people2 lisi
(integer) 1
127.0.0.1:6379> hexists people2 lisi2
(integer) 0
-》键值个数
127.0.0.1:6379> hgetall people2
1) "zhangsan"
2) "13"
3) "lisi"
4) "9"
5) "wangwu"
6) "15"
127.0.0.1:6379> hlen people2
(integer) 3
-》获取所有key/value
127.0.0.1:6379> hkeys people2
1) "zhangsan"
2) "lisi"
3) "wangwu"
127.0.0.1:6379> hvals people2
1) "13"
2) "9"
3) "15"
四、list
1.两端添加
127.0.0.1:6379> lpush peoplelist a b c
(integer) 3
127.0.0.1:6379> lpush peoplelist 1 2 3
(integer) 6
127.0.0.1:6379> lpush peoplelist 4 5 6
(integer) 9
127.0.0.1:6379> rpush peoplelist2 1 2 3
(integer) 3
127.0.0.1:6379> rpush peoplelist2 a b c
(integer) 6
2.查看列表:【lrange list列表 起始位 结束位(-1代表最后一位)】
127.0.0.1:6379> lrange peoplelist 0 -1
1) "6"
2) "5"
3) "4"
4) "3"
5) "2"
6) "1"
7) "c"
8) "b"
9) "a"
127.0.0.1:6379> lrange peoplelist2 0 -1
1) "1"
2) "2"
3) "3"
4) "a"
5) "b"
6) "c"
3.两端弹出
127.0.0.1:6379> lpop peoplelist
"6"
127.0.0.1:6379> lrange peoplelist 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "c"
7) "b"
8) "a"
4.获取列表元素个数
127.0.0.1:6379> lrange peoplelist 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "c"
7) "b"
8) "a"
127.0.0.1:6379> llen peoplelist
(integer) 8
5.删除:lrem list 删除个数 删除字符
语法:lrem list 删除个数 删除字符
备注:删除个数为负,从右侧开始删除;删除个数为0,删除所有字符
127.0.0.1:6379> lrange peoplelist 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
6) "c"
7) "b"
8) "a"
127.0.0.1:6379> lrem peoplelist 2 5
(integer) 1
127.0.0.1:6379> lrange peoplelist 0 -1
1) "4"
2) "3"
3) "2"
4) "1"
5) "c"
6) "b"
7) "a"
6.扩展命令
-》在指定位置插入
127.0.0.1:6379> lset peoplelist 3 expect
OK
127.0.0.1:6379> lrange peoplelist 0 -1
1) "4"
2) "3"
3) "2"
4) "expect"
5) "c"
6) "b"
7) "a"
-》在指定字符后插入字符
127.0.0.1:6379> lrange peoplelist 0 -1
1) "4"
2) "3"
3) "2"
4) "expect"
5) "c"
6) "b"
7) "a"
127.0.0.1:6379> linsert peoplelist before 2 2before
(integer) 8
127.0.0.1:6379> lrange peoplelist 0 -1
1) "4"
2) "3"
3) "2before"
4) "2"
5) "expect"
6) "c"
7) "b"
8) "a"
五、set
1.添加/删除元素
-》添加
127.0.0.1:6379> sadd peopleset aa bb cc
(integer) 3
127.0.0.1:6379> sadd peopleset aa
(integer) 0
127.0.0.1:6379> sadd peopleset 11 22 33
(integer) 3
127.0.0.1:6379> sadd peopleset 11 22
(integer) 0
127.0.0.1:6379> smembers peopleset
1) "bb"
2) "cc"
3) "aa"
4) "11"
5) "22"
6) "33"
-》删除元素
127.0.0.1:6379[1]> smembers peopleset
1) "cc"
2) "aa"
3) "dd"
4) "bb"
127.0.0.1:6379[1]> srem peopleset aa
(integer) 1
127.0.0.1:6379[1]> smembers peopleset
1) "cc"
2) "dd"
3) "bb"
2.获取集合中元素
127.0.0.1:6379[1]> smembers peopleset
1) "cc"
2) "dd"
3) "bb"
3.集合运算
127.0.0.1:6379> sadd peopleset1 a b c 1 2
(integer) 5
127.0.0.1:6379> sadd peopleset2 a b 1 2 3
(integer) 5
(1)集合中的差集运算
127.0.0.1:6379> sdiff peopleset1 peopleset2
1) "c"
(2)集合中交集运算
127.0.0.1:6379> sinter peopleset1 peopleset2
1) "b"
2) "1"
3) "a"
4) "2"
(3)集合中并集运算
127.0.0.1:6379> sunion peopleset1 peopleset2
1) "2"
2) "c"
3) "3"
4) "b"
5) "1"
6) "a"
(4)交集并且保存(并集并保存sunionstore,差集并保存sdiffstore)
127.0.0.1:6379> sinter peopleset1 peopleset2
1) "b"
2) "1"
3) "a"
4) "2"
127.0.0.1:6379> sinterstore peoplelist_i peopleset1 peopleset2
(integer) 4
127.0.0.1:6379> smembers peoplelist_i
1) "2"
2) "b"
3) "1"
4) "a"
4.其他命令
(1)判断包含某个元素:存在返回1,否则返回0
127.0.0.1:6379> sismember peopleset a
(integer) 0
127.0.0.1:6379> sismember peopleset aa
(integer) 1
(2)set元素数量
127.0.0.1:6379> scard peopleset1
(integer) 5
六、sorted-set
1.添加
127.0.0.1:6379> zadd peoplesort 70 a 30 b 80 c
(integer) 3
127.0.0.1:6379> zadd peoplesort 70 aa 35 bc 80 rt
(integer) 3
127.0.0.1:6379> zscore peoplesort
(error) ERR wrong number of arguments for 'zscore' command
127.0.0.1:6379> zscore peoplesort aa
"70"
2.获取元素
-》获取分数
127.0.0.1:6379> zscore peoplesort aa
"70"
-》获取元素个数
127.0.0.1:6379> zcard peoplesort
(integer) 6
3.删除元素zrem
127.0.0.1:6379> zcard peoplesort
(integer) 6
127.0.0.1:6379> zrem peoplesort a aa
(integer) 2
127.0.0.1:6379> zcard peoplesort
(integer) 4
-》删除排名一定范围的元素
127.0.0.1:6379> zremrangebyrank peoplesort 0 1
(integer) 2
127.0.0.1:6379> zrange peoplesort 0 -1 withscores
1) "c"
2) "80"
3) "rt"
4) "80"
-》删除指定分数区间的元素
127.0.0.1:6379> zremrangebyscore peoplesort 70 80
(integer) 2
127.0.0.1:6379> zrange peoplesort 0 -1 withscores
(empty list or set)
4.查询
127.0.0.1:6379> zrange peoplesort 0 -1
1) "b"
2) "bc"
3) "c"
4) "rt"
-》附带元素分数
127.0.0.1:6379> zrange peoplesort 0 -1 withscores
1) "b"
2) "30"
3) "bc"
4) "35"
5) "c"
6) "80"
7) "rt"
8) "80"
-》依据分数范围
127.0.0.1:6379> zrangebyscore peoplesort 0 100 withscores
1) "gg"
2) "32"
3) "f"
4) "34"
5) "a"
6) "80"
七、通用操作
1.获取所有keys
127.0.0.1:6379> keys *
1) "peoplelist"
2) "score"
3) "peopleset"
4) "peoplelist2"
5) "peoplesort"
6) "people2"
7) "peopleset2"
8) "peoplelist_i"
9) "peopleset1"
2.删除某个key:del
127.0.0.1:6379> del peoplelist_i
(integer) 1
3.判断是否存在key:存在返回1,否则返回0
127.0.0.1:6379> keys *
1) "peoplelist"
2) "score"
3) "peopleset"
4) "peoplelist2"
5) "peoplesort"
6) "people2"
7) "peopleset2"
8) "peoplelist_i"
9) "peopleset1"
127.0.0.1:6379> exists peoplelist1
(integer) 0
127.0.0.1:6379> exists peoplelist
(integer) 1
4.重命名某个key
127.0.0.1:6379> rename people2 people2_re
OK
5.设置过期时间
127.0.0.1:6379> expire peoplelist 1000
(integer) 1
-》查看剩余过期时间
127.0.0.1:6379> ttl peoplelist
(integer) 995
6.查看key的类型
127.0.0.1:6379> type peoplelist
list
7.选择切换数据库
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> select 0
OK
8.转移元素到不同数据库move
127.0.0.1:6379> move score 1
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "score"