Redis学习(一)

Redis的五大数据类型
  • String
    String 类型是Redis中最基本的数据类型,是二进制安全的,它可以包含任意的数据类型,如图片。Redis中String类型的数据的上限是512M.
  • List
    Redis的list是每个子元素都是String类型的双向链表,可以通过push和pop操作从列表的头部或者尾部添加或者删除元素,这样List即可以作为栈,也可以作为队列。
  • Hash
    是一个String的field和value的映射表,hash特别适合于存储对象。Redis中的每一个hash可以存储2^32-1键值对。本质上其内部就是一个HashMap,并提供了直接存取这个Map成员的接口。对象内部的key就是field,也就是对象的属性名, value值就是对象的属性值,Redis直接通过field(Map存储的对象的属性名)映射value(对象的属性value值)。
  • Set
    Set是String类型的无序集合。集合成员是唯一的,不允许重复。其实其内部就是一个HashMap,只不过它的value值一直为null,通过hash算法和key.equals()方法进行去重。
  • Zset
    存储的是一个集合,和Set类似,不同的是增加了一个权重参数score,使得集合中的元素能够按score进行有序排列,集合中的成员是唯一的,也就是说不允许重复,但是 score是可以重复的。
Redis的一些通用命令介绍
  • select

在redis中默认一共有16个库,编号为0-15,正常情况下,用户登录后首先看到的是0号库,可以通过select命令手动切换库

首先进入客户端,并存入一个键值对
在这里插入图片描述
在这里插入图片描述在可视化工具上可以看到默认一共有16个库,添加数据默认是存在0号库的

127.0.0.1:6379> set name wangdonglin
OK
127.0.0.1:6379> select 1  //切换到1号库
OK
127.0.0.1:6379[1]> get name
(nil)             //获取name的值,发现并没有这个键
127.0.0.1:6379[1]> select 0   //重新切换到0号库
OK
127.0.0.1:6379> get name   //获取name的值,发现找到了
"wangdonglin"
127.0.0.1:6379> 
  • del

该命令用于在key存在时删除key,返回改变的记录数

127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> set no 100000
OK
127.0.0.1:6379> del name		//删除一条数据
(integer) 1						//改变的记录数是1
127.0.0.1:6379> del age no		//删除两条数据
(integer) 2						//返回的是改变的记录数2
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> get age
(nil)
127.0.0.1:6379> get no
(nil)

  • dump

序列化给定的key,并返回被序列化的值

127.0.0.1:6379> set name 张三
OK
127.0.0.1:6379> dump name
"\x00\x06\xe5\xbc\xa0\xe4\xb8\x89\t\x00A\x0eIZ\xd5\xf7lX"
127.0.0.1:6379> 
  • exists

检查key是否存在,存在几个key,存在返回几,不存在,返回0,这里exists keys[key1,key2…],

127.0.0.1:6379> set age 18
OK
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists name age
(integer) 2
127.0.0.1:6379> exists aa
(integer) 0
127.0.0.1:6379> exists name aa
(integer) 1
127.0.0.1:6379> 
  • ttl

以秒为单位,返回给定key的剩余生存时间,返回-1表示没有设置有效时间,不会过期,返回-2表示key不存在。

127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379> ttl aa
(integer) -2
127.0.0.1:6379> 
  • expire (key seconds)

给一个键值对设置有效时间,单位为秒,当到达失效时间时,就会失效

127.0.0.1:6379> expire name 100
(integer) 1
127.0.0.1:6379> ttl name
(integer) 95
127.0.0.1:6379> ttl name
(integer) 69
127.0.0.1:6379> ttl name
(integer) 27
127.0.0.1:6379> ttl name
(integer) 12				//还有12秒失效
127.0.0.1:6379> ttl name
(integer) 2
127.0.0.1:6379> ttl name
(integer) -2		//键已经失效了
127.0.0.1:6379> get name   //已经找不到这个键了
(nil)
127.0.0.1:6379> 
  • pexpire

同样是设置过期时间,只不过单位是毫秒

  • pttl

同样是查看键的有效时间,只不过返回的是毫秒

127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379> pexpire name 10000    //10000毫秒,也就是10秒
(integer) 1
127.0.0.1:6379> ttl name
(integer) 7       //还有7秒就失效
127.0.0.1:6379> pttl name
(integer) 2079  //还有2079毫秒就失效了
127.0.0.1:6379> pttl name
(integer) -2     //已经失效了
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> 
  • keys (pattern)

keys pattern 后面可以跟一个正则表达式,匹配所有符合这个模式的key

127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> set name1 lisi
OK
127.0.0.1:6379> set name2 wangwu
OK
127.0.0.1:6379> set age1 20
OK
127.0.0.1:6379> set age2 21
OK
127.0.0.1:6379> keys *
1) "age1"
2) "age2"
3) "name2"
4) "name"
5) "name1"
6) "age"
127.0.0.1:6379> keys name*
1) "name2"
2) "name"
3) "name1"
127.0.0.1:6379> keys age*
1) "age1"
2) "age2"
3) "age"
127.0.0.1:6379> 
  • randomkey

从当前数据库中随机返回一个key

127.0.0.1:6379> randomkey
"age2"
127.0.0.1:6379> randomkey
"age2"
127.0.0.1:6379> randomkey
"name1"
127.0.0.1:6379> randomkey
"age"
127.0.0.1:6379> randomkey
"name1"
127.0.0.1:6379> randomkey
"name1"
127.0.0.1:6379> randomkey
"age2"
127.0.0.1:6379> 
  • type

返回key对应的数据类型

127.0.0.1:6379> type name
string
127.0.0.1:6379> type age
string
127.0.0.1:6379> type name age
(error) ERR wrong number of arguments for 'type' command
127.0.0.1:6379> 
  • rename

修改key的名称

127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> rename name zname
OK
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> get zname
"zhangsan"
127.0.0.1:6379> 
  • flushdb

清空当前库

127.0.0.1:6379> keys *
1) "age1"
2) "age2"
3) "name2"
4) "zname"
5) "name1"
6) "age"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> 

更多redis命令    redis命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值