Redis(2): redis常用数据结构string,set,hash,list,sorted-set

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u010886217/article/details/102616687

一、实现功能

二、string

三、hash

四、list

五、set

六、sorted-set

七、通用操作


一、实现功能

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"

猜你喜欢

转载自blog.csdn.net/u010886217/article/details/102616687