docker-redis基本命令-String

运行

[root@localhost ~]# docker run -d -p 6379:6379 --name redis0708 redis:6.0.5
51e1a509b761bb3f263338cfe1399701f6efdca511a09a30d646c53380691c22
[root@localhost ~]# docker exec -it redis0708 /bin/bash		//进入redis
root@51e1a509b761:/data# redis-cli

基本命令

127.0.0.1:6379> keys *				//查看所有key
1) "name"
2) "age"
127.0.0.1:6379> exists name 		//查看key是否存在
(integer) 1
127.0.0.1:6379> exists name1		
(integer) 0
127.0.0.1:6379> move name 1			//将名为name的key移到数据库1中
(integer) 1
127.0.0.1:6379> select 1			//转到数据库1
OK
127.0.0.1:6379[1]> get name			//获取名为name的key的value值
"liuliangcheng"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> expire name 10		//删除倒计时,单位秒
(integer) 0
127.0.0.1:6379> ttl name
(integer) -2
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> expire age 10
(integer) 1
127.0.0.1:6379> ttl age				//查看属于时间
(integer) 7
127.0.0.1:6379> ttl age
(integer) 3
127.0.0.1:6379> ttl age
(integer) -2
127.0.0.1:6379> get age
(nil)
127.0.0.1:6379> type name			//查看名为name的key的数据类型
string
127.0.0.1:6379> flushdb				//删除当前数据库所有信息
OK
127.0.0.1:6379> flushall			//删除所有数据库信息
OK
127.0.0.1:6379> set name liu
OK
127.0.0.1:6379> get name 
"liu"
127.0.0.1:6379> append name lalal	//在名为name的key的value后追加字符串,如果name不存在就会自动添加一个,等同于set name lalal
(integer) 8
127.0.0.1:6379> get name 
"liulalal"
127.0.0.1:6379> strlen name			//查看名为name的key的value的长度
(integer) 8
127.0.0.1:6379> append name ,menghuanwangguo
(integer) 24
127.0.0.1:6379> get name
"liulalal,menghuanwangguo"

i++
步长i+=

127.0.0.1:6379> set views 0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views			//自增1
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> decr views			//自减1
(integer) 1
127.0.0.1:6379> incrby views 10		//设置步长,指定增长量
(integer) 11
127.0.0.1:6379> decrby views 10		//设置步长,指定减少量
(integer) 1

字符串范围

//筛选
127.0.0.1:6379> set name hello,liangcheng		//设置name的值
OK
127.0.0.1:6379> get name
"hello,liangcheng"
127.0.0.1:6379> getrange name 0 3				//截取字符0-3
"hell"
127.0.0.1:6379> getrange name 0 -1     			//获取全部字符串和get key是一样的
//替换
"hello,liangcheng"
127.0.0.1:6379> setrange name 0 shuai			//替换指定位置的字符串
(integer) 16
127.0.0.1:6379> get name
"shuai,liangcheng"

单个设置
setex (set with expire ) #设置过期时间
setnx (set if not exist ) #不存在再设置 (再分布式锁中会常常使用!)

127.0.0.1:6379> setex name1 30 iloveyou		//创造name1 ,设置倒计时为30秒
OK
127.0.0.1:6379> get name1
"iloveyou"
127.0.0.1:6379> ttl name
(integer) -1
127.0.0.1:6379> ttl name1
(integer) 10
127.0.0.1:6379> setnx name binggo		//如果 name 不存在,创建失败
(integer) 0
127.0.0.1:6379> get name1
(nil)
127.0.0.1:6379> setnx name1 binggo		//如果 name 不存在,创建name
(integer) 1
127.0.0.1:6379> get name1
"binggo"

批量设置

127.0.0.1:6379> mset k1 v1 k2 v2 k3 v3		//同时设置多个值
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k1"
3) "k2"
127.0.0.1:6379> mget k1 k2 k3				//同时获取多个值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> msetnx k4 v4
(integer) 1
127.0.0.1:6379> msetnx k1 v1 k5 v5			//msetnx是一个原子性的操作,要么一起成功,要么一起失败
(integer) 0

对象

set user:1 {name:zhangsan,age:3}					//设置一个user:1 的对象
127.0.0.1:6379> mset id:1:name lcer id:1:age 2		//user:{id}:{filed},这样的设计再redis中是完全可以的
OK
127.0.0.1:6379> mget id:1:name id:1:age
1) "lcer"
2) "2"
127.0.0.1:6379> keys *
1) "id:1:name"
2) "id:1:age"
/*****************************/
127.0.0.1:6379> getset db lcer		//如果不存在值,则返回nil
(nil)
127.0.0.1:6379> get db
"lcer"
127.0.0.1:6379> getset db abc		//如果存在值,获取原来的值,并设置新的值
"lcer"
127.0.0.1:6379> get db
"abc"

String类似的使用场景:value除了是我们的字符串还可以是我们的数字!
1、计数器
2、统计多单位的数量
3、粉丝数
4、对象缓存存储

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值