本文是根据B站大学动力节点课程总结而来,原视频请移步至Redis7-033-ZSet型value操作命令(2)_哔哩哔哩_bilibili
PS:其中的某个视频音画不同步。
redis中的value类型有五种,分别是String(字符串类型)、Hash(哈希表型)、List(链表型)、Set (集合型)、ZSet(有序集合型)。下面笔者将逐一介绍。这些命令的开头都和自身的类型有关系,除了list,因为链表要需要表示是向左边添加还是向右边添加。
String类型
不同于常规程序设计语言中的字符串类型,redis中的string类型更加灵活多样。
常规命令:
1. set key value
该命令可以向redis的某个数据库添加key-value。例如
set name zs
这样就添加上了
1.1额外配置项
1.1.1 set name zs ex 200
这样就添加了过期时间,表示在一定时间后这个键值对会消除。该命令等价于
setex name 200 zs
1.1.2set name zs nx
这样表示添加之前先检测,如果不存在key值为name的键值对,才能添加。该命令等价于
setnx name zs
1.1.3set name zs xx
这样表示只有key存在的时候,才会更新。
2.getset key value
该命令可以更新键值对,对key值设置为value,返回旧值
3.mset ke1y value1 [key2 value2 key3 value3 ...]
该命令一次性添加多个键值对
3.1msetx key1 value1 [key2 value2 key3 value3 ...]
该命令要求添加的键值对必须都是新值
3.1mget key1 key2 key3
该命令获取多个值
4.append value key
该命令可以追加value值。例如
append name " ls"
5.incrby key [count]
该命令可以将value加数字(redis中的数值类型和程序设计语言不一样)。如果count不指定数字,则默认添加1。可添加负数,所以可以替换减法命令
decrby key [count]
的功能。注意:该命令只能添加整数。添加浮点数需要下面的命令
incrbyfloat key [count]
6.getrange key start end
该命令可以将value中的字符串取出,指向规则和数组一样,从0开始。
7.setrange key start value
该命令会把value的值更新到key代表的值当中。
例如对key value为 name zs 做以下操作 setrange name 1 lis。结果是
"zlis"
值得我们注意的是,当指定的位置超出字符长度或者不存在该key值的时候的时候,空余的地方会用\x00填充
8.strlen key
回复制定key的value的长度
String的应用场景
1.数据缓存
2.计数器
3.共享session
4.限速器(防止Dos攻击,但是防不了DDos攻击)
Hash类型
每个redis数据库就是一个hash类型,跟Map(字典)一样。在hash类型的数据中,key称为field。
1.hset employ field1 value1 field2 value2
创建hash类型的数据,,可以添加多个,例如
hset employee name zs age 23
下面这段可以只添加新值,在命令后面加了一个x
hsetx empolyee field1 value1 field2 value2
2.hget key field
查看某个hash类型的field中的value值例如
hget employee name
2.1 hmget key field1 field2
查看多个值
2.2hgetall employee
看所有键值对
2.3hkeys employee
看所有键
2.4hvals employee
看所有值
3.hdel key field
删除某个键值对
4.hexists key field
查看是否存在某个键值对
5.hincrby key field [count]
和string类型类似,加值且只能加整数
6.hincrbyfloat key field [count]
加浮点数
7.hstrlen key field
看field中的value的长度
8.hlen key
看那hash的长度,即field的个数