启动
拉取镜像并创建容器参考https://yutian.blog.csdn.net/article/details/119405755
docker start redis01
启动容器,前题是容器已经存在了,如果不存在,可以先使用run命令创建容器
docker exec -it redis01 bash
进入运行中的容器
redis-cli
进入redis
root@be640cf67f13:/data# redis-cli
127.0.0.1:6379>
使用
shutdown
在redis里面,就是6379> 后面执行时是安全关闭redis的方式。redis使用此种方式退出时,会把各数据库里面的数据持久化到硬盘dump.rdb
文件中
help
查看帮助
127.0.0.1:6379> help
redis-cli 6.2.5
To get help about Redis commands type:
"help @<group>" to get a list of commands in <group>
"help <command>" 获得command命令的相关帮助
"help <tab>" to get a list of possible help topics
"quit" to exit
To set redis-cli preferences:
":set hints" enable online hints
":set nohints" disable online hints
Set your preferences in ~/.redisclirc
help command
查看command命令的帮助
127.0.0.1:6379> help command
COMMAND -
summary: 获得redis命令详情的列表(数组)
since: 2.8.13
group: server
COMMAND COUNT -
summary: redis命令的总数
since: 2.8.13
group: server
COMMAND GETKEYS -
summary: Extract keys given a full Redis command
since: 2.8.13
group: server
COMMAND INFO command-name [command-name ...]
summary: Get array of specific Redis command details
since: 2.8.13
group: server
type key
查看key的数据类型,有string、list、set、hash
127.0.0.1:6379> type a
list
set title redis
把"redis"
字符串存储到title
这个键里
expire key
Set a key’s time to live in seconds
127.0.0.1:6379> set title redis
OK
127.0.0.1:6379> expire title 10 #设置title多久后失效
(integer) 1
127.0.0.1:6379> ttl title #查看title生命周期内剩余时间,就是还有多久失效
(integer) 6
127.0.0.1:6379> ttl title
(integer) 1
127.0.0.1:6379> ttl title
(integer) -2
127.0.0.1:6379> ttl title
(integer) -2
127.0.0.1:6379> get title
(nil) #title已经失效了,所以取不到值了
keys *
查看存储的所有的key
keys a*
查找以a开头的key
127.0.0.1:6379> keys *
1) "title"
2) "y"
3) "id"
select 0
切换数据库,默认单机状态下有16个数据库,使用此命令在各数据库间切换
flushdb
清除当前数据库
flushall
清除所有数据库的数据
String相关函数
命令 | 解释 |
---|---|
incr key | 指定key的值加1 |
incrby key increment | 指定key的值增加increment |
decr key | 指定key减1 |
decrby key decrement | 指定key减掉decrment |
strlen key | 获得指定key的字符串长度,一个中文长度为3 |
mset key value [key value ...] | 同时存储多个键值对 |
mget key [key ...] | 同时获取多个键的值 |
append key value | 向指定的key追加value |
del key [key ...] | 删除key |
Hash类型
命令 | 解释 |
---|---|
hset key field value | 设置key的field属性的值为value |
hset user id 100 name tony | 设置一个user,id为100,name为tony |
hget user id | 取user的id的值 |
hgetall user | 取user里面所有属性的值 |
hincrby user id 1 | 给user的id属性增加1 |
hdel user id | 删除user的id属性 |
hexists user age | user的age属性是否存在,0不存在,1存在 |
hkeys user | 取user的所有的属性列表 |
hvals user | 取user所有的值,就是值的列表,不包含属性名 |
del user | 清空user |
List类型
命令 | 解释 |
---|---|
lpush a avalue [element ...] | 从a左边push一个值avalue,或多个值 ,表示依次push |
lpop a [count] | 从a左边弹出一个值,或多个值 |
rpush a bvalue [element ...] | 从a的右边push一个值bvalue,或多个值 |
rpop a [count] | 从a右边弹出一个值,或多个值 |
lrange a 0 -1 | 打印a,从左边数第一个开始到右边数第一个结束 |
llen a | 返回a的元素的个数 |
lindex a index | 返回名称为a的list中index位置的元素 |
ltrim a start stop | 保留名为a的list中的start位置到stop位置的元素 |
lrem a n element | 删除名为a的list中的前n个element元素 |
lset a 0 element | 把名为a的list的0号位置的值设置为element |
rpoplpush list1 list2 | 从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个list是空或者不存在返回nil |
del a | 清空a |
Set类型
命令 | 解释 |
---|---|
sadd set a b b c | 把所有元素插入set中,会自动去重,无序 |
smembers set | 获得集合中的元素 |
scard set | 获得集合中元素的个数 |
sismember set a | 判断set中是否有a这个元素,1存在,0不存在 |
smove set1 set2 a | 把a元素从set1中移动到set2中 |
scard set1 | 查set1中有多少个元素 |
spop set1 | 从set1中随机弹出一个元素 |