Redis入门:二、常用数据类型及简单命令

7 篇文章 0 订阅

一、常用数据类型

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"



综上,五大基本数据类型和一些基本操作就介绍到这里了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值