Redis入门:二、常用数据类型及简单命令
文章目录
- 一、常用数据类型
- 二、常用的命令
- 1、String数据类型
- 2、List
- 3、Set
- 4、Zset
- 5、hash
一、常用数据类型
Redis中的key可以理解为mysql中数据库。
废话不多说,开局一张图,剩下全靠编,不对,剩下全靠讲解。
二、常用的命令
redis命令参考文档:http://doc.redisfans.com/
由于命令比较多,就不一一列举了。放一张图感受一下:
有需要可以去该网站进行查找,也比较方便,后面就讲解一下常用的一些命令,特别是五大基本类型,基本都是大同小异,主要从增删改查四个功能来讲解对应的指令。
开始之前,先讲解一下系统指令
flushdb #删除当前数据库
flushall #删库跑路,慎用
keys * #查看所有的key,即所有的数据库
具体演示后面会用到。
1、String数据类型
127.0.0.1:6379> flushdb #清除数据库
OK
127.0.0.1:6379> set name wj #设置key为name value为wj
OK
127.0.0.1:6379> set age 18 #也可以为数据类型
OK
127.0.0.1:6379> get name #获取对应key的value值
"wj"
127.0.0.1:6379> mget age name addr #一次性获取多个key的value值。key的顺序以及是否存在无关,若为空则返回null
1) "18"
2) "wj"
3) (nil)
127.0.0.1:6379> strlen name #获取key对应的value长度
(integer) 2
127.0.0.1:6379> exists name #判断该key是否为空
(integer) 1
127.0.0.1:6379> setnx age 20 #判断age是否为空,若不为空,则设置为20,若存在,则不作改变
(integer) 0
127.0.0.1:6379> get age #由于age已经存在,所以上述指令不作效
"18"
127.0.0.1:6379> append name lovezjy #作为字符串还可以拼接字符串
(integer) 9
127.0.0.1:6379> get name #拼接后的内容
"wjlovezjy"
127.0.0.1:6379> getrange name 1 4 #截取字符串
"jlov"
好了,字符串的一些基本骚操作就到此了,更多使用命令可以参考手册。
2、List
127.0.0.1:6379> lpush mylist 1 #左边插入
(integer) 1
127.0.0.1:6379> lpush mylist 2
(integer) 2
127.0.0.1:6379> lpush mylist 3
(integer) 3
127.0.0.1:6379> rpush mylist 4 #右边插入
(integer) 4
127.0.0.1:6379> rpush mylist 5
(integer) 5
127.0.0.1:6379> lrange mylist 0 -1 #显示所有元素
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
127.0.0.1:6379> lpop mylist #左边取出,并删除
"3"
127.0.0.1:6379> rpop mylist #右边取出,并删除
"5"
127.0.0.1:6379> lrange mylist 0 -1 #取值完后的元素
1) "2"
2) "1"
3) "4"
127.0.0.1:6379> lindex mylist 1 #查找1号位置的元素
"1"
127.0.0.1:6379> lset mylist 1 9 #修改1号位置的元素由1变为9
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "2"
2) "9"
3) "4"
127.0.0.1:6379> lrem mylist 1 2 #删除mylist中值为2的元素,删除1个。list可以存放重复值,所以删除时有个数选择
##############################################################
127.0.0.1:6379> lrange newlist 0 -1 #创建一个新数组
1) "4"
2) "3"
3) "2"
4) "1"
127.0.0.1:6379> rpoplpush mylist newlist #将mylist尾部元素取出添加到newlist头部
"4"
127.0.0.1:6379> lrange newlist 0 -1
1) "4"
2) "4"
3) "3"
4) "2"
5) "1"
list集合的一些基本操作就到这里了。
3、Set
###############################################################
127.0.0.1:6379> sadd myset one #存入元素
(integer) 1
127.0.0.1:6379> sadd myset two
(integer) 1
127.0.0.1:6379> sadd myset three
(integer) 1
127.0.0.1:6379> sadd myset three #不允许有重复值
(integer) 0
127.0.0.1:6379> sadd myset four
(integer) 1
127.0.0.1:6379> smembers myset #显示所有元素
1) "three"
2) "four"
3) "two"
4) "one"
127.0.0.1:6379> scard myset #显示数组大小
(integer) 4
127.0.0.1:6379> srem myset one two #删除元素,可以同时删除一个或者多个
(integer) 2
127.0.0.1:6379> smembers myset
1) "three"
2) "four"
127.0.0.1:6379> sismember myset three #判断是否存在three元素
(integer) 1
127.0.0.1:6379> spop myset #移除并返回集合中的一个随机元素
"four"
127.0.0.1:6379> smembers newset #创建一个新集合
1) "three"
2) "four"
3) "eight"
4) "seveb"
5) "six"
6) "ten"
7) "nine"
8) "five"
127.0.0.1:6379> srandmember newset #返回集合中一个或多个随机数,并不会做删除操作
"ten"
127.0.0.1:6379> srandmember newset
"five"
127.0.0.1:6379> smembers newset
1) "three"
2) "four"
3) "eight"
4) "seveb"
5) "six"
6) "ten"
7) "nine"
8) "five"
############################################################
127.0.0.1:6379> smembers myset #创建集合1
1) "three"
2) "two"
3) "four"
4) "one"
127.0.0.1:6379> smembers newset #创建集合2
1) "three"
2) "four"
3) "six"
4) "five"
127.0.0.1:6379> sdiff myset newset #返回第一个集合的差集
1) "two"
2) "one"
127.0.0.1:6379> sinter myset newset #返回两个集合的交集
1) "three"
2) "four"
127.0.0.1:6379> sunion myset newset #返回两个集合的并集
1) "three"
2) "two"
3) "four"
4) "one"
5) "six"
6) "five"
#################################################################
4、Zset
127.0.0.1:6379> zadd myset 1 zjy #添加元素,1为分数,用于排序
(integer) 1
127.0.0.1:6379> zadd myset 2 wj
(integer) 1
127.0.0.1:6379> zadd myset 3 wgx
(integer) 1
127.0.0.1:6379> zadd myset 4 wsx
(integer) 1
127.0.0.1:6379> zadd myset 5 wj #有重复值时,分数会覆盖前一个
(integer) 0
127.0.0.1:6379> zadd myset 3 zlm #元素不允许重复但分数可以重复
(integer) 1
127.0.0.1:6379> zcard myset #统计集合大小
(integer) 5
127.0.0.1:6379> zrange myset 0 -1 #显示所有集合元素
1) "zjy"
2) "wgx"
3) "zlm"
4) "wsx"
5) "wj"
127.0.0.1:6379> zrange myset 0 -1 withscores #显示所有集合元素,并带上分数
1) "zjy"
2) "1"
3) "wgx"
4) "3"
5) "zlm"
6) "3"
7) "wsx"
8) "4"
9) "wj"
10) "5"
##############################################################
127.0.0.1:6379> zrem myset wj zjy wgx #删除一个或者多个元素
(integer) 3
127.0.0.1:6379> zrange myset 0 -1 withscores
1) "zlm"
2) "3"
3) "wsx"
4) "4"
有序集合的基本操作就到这里了
5、hash
127.0.0.1:6379> hset user1 name wj #插入一个字段
(integer) 1
127.0.0.1:6379> hset user1 age 18
(integer) 1
127.0.0.1:6379> hset user1 addr jiangxi
(integer) 1
127.0.0.1:6379> hmset user2 name zjy age 18 addr hubei #也可以一次性将多个k-v保存到key中
OK
127.0.0.1:6379> hset user1 sex boy
(integer) 1
127.0.0.1:6379> hexists user2 sex #判断k值是否存在
(integer) 0
127.0.0.1:6379> hexists user1 sex
(integer) 1
127.0.0.1:6379> hdel user1 sex #删除k-v
(integer) 1
127.0.0.1:6379> hgetall user1 #获取所有的键值对
1) "name"
2) "wj"
3) "age"
4) "18"
5) "addr"
6) "jiangxi"
127.0.0.1:6379> hkeys user2 #获取所有的k值
1) "name"
2) "age"
3) "addr"
127.0.0.1:6379> hlen user1 #获取长度大小
(integer) 3
127.0.0.1:6379> hmget user1 name age addr #获取多个k值对应的v值
1) "wj"
2) "18"
3) "jiangxi"
127.0.0.1:6379> hvals user2 #获取所有的v值
1) "zjy"
2) "18"
3) "hubei"
127.0.0.1:6379> hsetnx user1 sex boy #如果不存在则创建一个k-v对
(integer) 1
127.0.0.1:6379> hgetall user1 #获取所有集合中的内容
1) "name"
2) "wj"
3) "age"
4) "18"
5) "addr"
6) "jiangxi"
7) "sex"
8) "boy"
综上,五大基本数据类型和一些基本操作就介绍到这里了。
还没有评论,来说两句吧...