通过Docker在Linux操作系统上部署Redis详细步骤已在前面的文章中详细讲解
https://blog.csdn.net/Coder_ljw/article/details/127248830
Docker通过命令进入容器
docker exec -it redis redis-cli
#进入容器后通过ping来测试一下
#redis给回应pong
Redis数据都是Key-Value对,Value的数据类型有以下五种:
数据类型 | 说明 |
---|---|
String | 是Redis中最基本的数据类型,二进制安全的,它可以包含任意数据类型。如图片。Redis中String类型的数据上限的512M。 |
List | Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。 |
Hash | 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。 |
Set | Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 |
ZSet | 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 |
命令来自于官网,可以大致看一下官网网站
创建key-value命令
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379>
select index(0-15)
在redis中,默认一共有16个数据库,编号为0-15,正常情况下,用户登录成功后,首先看到的是0号库,可以手动切换为其他库并使用
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]> set name1 zhangsan1
OK
127.0.0.1:6379[3]> get name1
"zhangsan1"
127.0.0.1:6379[3]> get name
(nil)
127.0.0.1:6379[3]>
DEL命令
该命令用于当 key 存在时删除 key,如果key存在,删除成功返回1,不成功返回0、如果key不存在也返回0。
127.0.0.1:6379> SELECT 3
OK
127.0.0.1:6379[3]> keys *
1) "name1"
127.0.0.1:6379[3]> del name1
(integer) 1
127.0.0.1:6379[3]> del name1
(integer) 0
127.0.0.1:6379[3]> del name
(integer) 0
127.0.0.1:6379[3]>
DUMP命令
序列化给定 key ,并返回被序列化的值。如果key是不存在的,直接返回nil。
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> dump name
"\x00\x04lisi\t\x00\xd2p\xcc\xfe6\x8d\xd9\x15"
127.0.0.1:6379> dump teacher
(nil)
EXISTS命令
检查key是否存在,如果存在返回1,如果不存在返回0
127.0.0.1:6379> exists name
(integer) 1
127.0.0.1:6379> exists name11
(integer) 0
127.0.0.1:6379>
TTL命令
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
-2表示key不存在,-1表示没有设置有效时间,不会过期,我们可以通过EXPIRE key 设置有效时间。
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379> ttl name2
(integer) -2
127.0.0.1:6379>
EXPIRE
设置key的有效时间,单位秒,如果key的有效时间没了,返回-2,此时key已经不存在了。
127.0.0.1:6379> expire name 150
(integer) 1
127.0.0.1:6379> ttl name
(integer) 142
127.0.0.1:6379> ttl name
(integer) 140
127.0.0.1:6379> ttl name
(integer) 136
127.0.0.1:6379> ttl name
(integer) 133
127.0.0.1:6379> expire name 30
(integer) 1
127.0.0.1:6379> ttl name
(integer) 23
127.0.0.1:6379> ttl name
(integer) 19
127.0.0.1:6379> tttl name
(error) ERR unknown command `tttl`, with args beginning with: `name`,
127.0.0.1:6379> ttl name
(integer) 11
127.0.0.1:6379> ttl name
(integer) -2
PEXPIRE
设置key的有效时间,单位毫秒,如果key的有效时间没了,返回-2,此时key已经不存在了。
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> get name
"zhangsan"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> pexpire name 60
(integer) 1
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379>
PTTL
和ttl命令一样,只是返回单位是毫秒
127.0.0.1:6379> set name lisi
OK
127.0.0.1:6379> get name
"lisi"
127.0.0.1:6379> expire name 30
(integer) 1
127.0.0.1:6379> pttl name
(integer) 25508
127.0.0.1:6379> pttl name
(integer) 23062
127.0.0.1:6379> pttl name
(integer) 21332
127.0.0.1:6379> pttl name
(integer) 19974
127.0.0.1:6379> expire name 3
(integer) 1
127.0.0.1:6379> pttl name
(integer) -2
127.0.0.1:6379>
Keys
查找当前select index 下所有的key
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set username zhangsan
OK
127.0.0.1:6379> set password XXXXXXX
OK
127.0.0.1:6379> set email wersdfarf@qq.com
OK
127.0.0.1:6379> keys *
1) "password"
2) "email"
3) "username"
127.0.0.1:6379>
RANDOMKEY
从当前数据库中随机返回一个key
127.0.0.1:6379> keys *
1) "password"
2) "email"
3) "username"
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379> randomkey
"username"
127.0.0.1:6379> randomkey
"password"
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379>
TYPE命令
如果key存在,返回key对应的数据类型,如果不存在,返回的是none。
127.0.0.1:6379> randomkey
"password"
127.0.0.1:6379> type password
string
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379> type email
string
127.0.0.1:6379> randomkey
"password"
127.0.0.1:6379> type password
string
127.0.0.1:6379> randomkey
"email"
127.0.0.1:6379> randomkey
"username"
127.0.0.1:6379> type username
string
127.0.0.1:6379> type user
none
127.0.0.1:6379>
RENAME
修改当前key的名称
127.0.0.1:6379> keys *
1) "password"
2) "email"
3) "username"
127.0.0.1:6379> get username
"zhangsan"
127.0.0.1:6379> rename username user_name
OK
127.0.0.1:6379> keys *
1) "password"
2) "email"
3) "user_name"
127.0.0.1:6379> get username
(nil)
127.0.0.1:6379> get user_name
"zhangsan"
127.0.0.1:6379>
flushdb
清空当前库中所有的key
127.0.0.1:6379> keys *
1) "password"
2) "email"
3) "user_name"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>
flushall
清空redis中0-15这16个库中所有的数据,谨慎使用。
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> set name zhangsan
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set name lisi
OK
127.0.0.1:6379[1]> keys *
1) "name"
127.0.0.1:6379[1]> flushall
OK
127.0.0.1:6379[1]> keys *
(empty array)
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>