Redis中的String(字符串)类型的基本使用与基本命令

Redis中的String(字符串)类型的基本使用与基本命令

a.一些关于字符串类型的基本命令

90%的java程序员使用redis只会使用一个String类型!

String类型的value值,不仅可以是字符串还可以是我们的数字,这在下面的自增例子中可以解释这点。

###############################################################################################
#字符串的基本追加,与获取字符串长度

127.0.0.1:6379> set name xuan		#set key 值:此命令可以设置键值对
OK
127.0.0.1:6379> keys *				#keys *:此命令可以查看所有的键
1) "name"
127.0.0.1:6379> get name			#get key:此命令可以查看指定键的value值
"xuan"
127.0.0.1:6379> append name yuan	#append key 内容:此命令可以在原来的字符串基础上追加内容,如果key不存在则创建新的key
(integer) 8
127.0.0.1:6379> get name
"xuanyuan"
127.0.0.1:6379> strlen name			#strlen key:此命令可以查看指定key所对应的字符串的长度
(integer) 8
127.0.0.1:6379> append age 21		#使用append命令的时候,如果key不存在则作用类似set命令,会创建一个新的键值对
(integer) 2
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> get age
"21"
127.0.0.1:6379> append age 21
(integer) 4
127.0.0.1:6379> get age
"2121"
127.0.0.1:6379> 
###############################################################################################
#数据库中字段的自增设置

127.0.0.1:6379> set num 0		
OK
127.0.0.1:6379> keys *
1) "name"
2) "num"
3) "age"
127.0.0.1:6379> incr num		#incr key:此命令可以让key自增1
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> get num
"2"
127.0.0.1:6379> incrby num 10	#incrby key 步长:此命令可以让key自增我们设置的步长数
(integer) 12
127.0.0.1:6379> get num
"12"
127.0.0.1:6379> incrby num 20
(integer) 32
127.0.0.1:6379> get num
"32"
127.0.0.1:6379> decr num		#decr key:此命令可以让key自减1
(integer) 31
127.0.0.1:6379> get num
"31"
127.0.0.1:6379> decrby num 10	#decrby key 步长:此命令可以让key自减我们设置的步长数
(integer) 21
127.0.0.1:6379> get bun
(nil)
127.0.0.1:6379> get num
"21"
127.0.0.1:6379> 
###############################################################################################
#截取字符串中的部分内容

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name xuanyuanzhenying	#设置name的值
OK
127.0.0.1:6379> keys *						#keys *:查看redis数据库中所有的键
1) "name"
127.0.0.1:6379> get name					#get key:得到指定的键的值
"xuanyuanzhenying"
127.0.0.1:6379> getrange name 0 3			#getrange key 下标1 下标2:此命令可以截取指定字符串的某段
"xuan"
127.0.0.1:6379> getrange name 0 7
"xuanyuan"
127.0.0.1:6379> getrange name 0 -1			#getrange key 0 -1:此命令可以截取字符串的全部
"xuanyuanzhenying"
127.0.0.1:6379> 
###############################################################################################
#替换字符串中的部分内容

127.0.0.1:6379> keys *							#查看redis数据库中所有的key
1) "name"
127.0.0.1:6379> get name						#得到指定的key对应的value值
"xuanyuanzhenying"
127.0.0.1:6379> setrange name 8 piaoxue			#setrange key 下标 替换内容:此命令可以从指定下标处替换字符串中的内容
(integer) 16
127.0.0.1:6379> get name
"xuanyuanpiaoxueg"
127.0.0.1:6379> setrange name 8 piaoxuepiaoyv
(integer) 21
127.0.0.1:6379> get name
"xuanyuanpiaoxuepiaoyv"
127.0.0.1:6379> 
###############################################################################################
# setex(set with expire) #设置键的时候,可以设置上过期时间
# setnx(set if not exist) #如果键不存在才会设置,存在的话不会设置,在分布式锁中会常用!
# msetnx #用msetnx设置多个键值对的时候,只要有一个key存在,那么整体就会设置失败,这体现的是redis数据库的原子性

127.0.0.1:6379> keys *						#查看redis数据库中所有的键
(empty array)
127.0.0.1:6379> setex name 30 "xuanyuan"	#setex key 过期时间单位秒 value:此命令可以在设置键值对的时候设置上过期时间
OK
127.0.0.1:6379> ttl name					#ttl key:此命令可以查看键的过期时间
(integer) 26
127.0.0.1:6379> get name					#get key:得到指定的键对应的value值
"xuanyuan"
127.0.0.1:6379> keys *						#keys *:得到redis数据库中的所有的键
1) "name"
127.0.0.1:6379> setnx mykey "redis"			#setnx key value:此命令在设置键值对的内容时会先检测此键是否存在,只有在
(integer) 1									#当前redis数据库中不存在此键的时候,才会创建键值对,若存在则不会创建键值对
127.0.0.1:6379> keys *
1) "mykey"
127.0.0.1:6379> get mykey
"redis"
127.0.0.1:6379> setnx mykey "MongoDB"		#此时redis中已经存在mykey键了,因此不会再创建此键值对了,mykey值仍是redis
(integer) 0
127.0.0.1:6379> get mykey
"redis"
127.0.0.1:6379> 
###############################################################################################

b.redis中怎样存储对象?

redis中存储对象,如下图:

在这里插入图片描述

两种方式存储对象之后,在redis数据库中的键如下图:

在这里插入图片描述

这样就可以解释为什么用json字符串设置的对象,只能够通过键user:1去获取,而通过逐个属性去设置的对象,只能通过键user:2:name和user:2:age逐个获取值?因为在redis数据库中不同的设置对象的方式,在数据库中存储的键是不一样的,而在redis数据库中,只有通过键才能获取值;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr-X~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值