一、redis中的通用命令
通用命令(DDL)
keys 命令
del key:删除某个key
exists key:查看是否存在某个Key
type key:查看key的类型
expire key:设置Key的过期时间
ttl key :查看Key剩余存活时间
select N :切换数据库
move key N : 将某个Key 移动到编号为N的数据库
flushdb :清空单个数据库中的数据
flushall :清空所有数据库中的数据
二、redis 中 value 的常用命令
redis 是 Key-Value 的数据结构来存储数据。
Key 固定为String 类型,但是 Value 则具有多种类型。Value常用的类型有 String、Hash、List、Set、Zset 等。我们通过使用对应的命令来区分 Value 不同的数据类型。
String 类型
(1)构建单个key value
set key value : 如果不存在就新增,如果存在就修改(相当于mysql 中 replace into)
也有 upsert
(2)批量构建多个key value
mset : m —> multiple
mset k1 v1 k2 v2 ….
(3)批量读取多个key value
mget
mget k1 k2 k3 …
(4)setnx 只能新增,不能修改;set 当key存在的时候可以修改对应的value值,不存在则新增
setnx s5 spark
应用场景:加锁?
1、客户端A请求服务器设置key的值,如果设置成功就表示加锁成功
2、客户端B也去请求服务器设置key的值,如果返回失败,那么就代表加锁失败
3、客户端A执行代码完成,删除锁
4、客户端B在等待一段时间后再去请求设置key的值,设置成功
5、客户端B执行代码完成,删除锁
(5)incr:用于对数值类型的字符串进行递增,递增1,一般用于计数器
increment
(6)incrby :用于指定 数值类型的字符串增长固定的步长
incrby k step
应用场景:
pv 页面的访问量
(7)decr
(8)decrby
(9)strlen
(10)getlen
(11)getrange: 用于截取字符串: getrange k start end
类似于SQL的substring/substr
哈希类型
value 为哈希类型,哈希嵌套
类似于Map集合
(1)hset K k v
hset p1 name laoda
hset p1 age 20
hset p2 name laoer
hset p2 age 18
(2)hget p1 name
批量
(3)hmset p1 gender male adress shanghai:批量为某个Key设置多个属性的值
(4)hmget p1 gender adress : 批量获取某个Key多个属性的值
(5)hgetall K:获取某个Key所有属性的值
(6)hlen K : 获取某个 Key 所有属性的个数
(7)hexists : hexists K k1:判断某个Key是否存在某个属性
(8)hvals: 获取某个Key所有属性的值
(9)hkeys: 获取某个Key所有属性的key
List类型(有序的特点)
(1)lpush 将元素依次放到数组的左边 : lpush array_name element eg: lpush list1 1 2 3 3
(2)rpush 将元素依次放到数组的右边 : rpush array_name element eg: rpush list1 4 4 5 6 7
(3)lrange 查询数组中所有的元素:lrange array_name start stop eg: lrange list1 0 -1
从左往右:下标从0开始
从右往左:下标从-1开始
(4)llen 求list的个数 llen list1
(5)lpop 把最左边的元素弹出
(6)rpop 把最右边的元素
set类型(不重复的特点、去重)
- sadd: 用于添加元素到Set集合,去重
sadd K e1 e2 e3... - smembers: 用于查看Set集合的所有成员
smembers K - sismember: 判断是否包含这个成员
sismember K k - srem : 删除其中某个元素
srem K k - scard: 统计集合长度
scard K - sunion : 取并集
sunion set1 set2
eg: s1—> 125
s2 —> 134457
sunion s1 s2 —> 123457 - sinner:取交集
zset 类型
类似于java中TreeMap概念,结合了list 和set的共同特征:有序,不可重复(TopN)
-
添加元素:zadd(set集合用sadd)
zadd zset1 score1 e1 score2 e2
zset1 : 名字
score1 : 用来排序,可以是数值
e1: 元素 -
zrange zset1 start end (默认按asc进行升序输出)
zrange zset1 0 -1
zrange zset 0 -1 withscores -
zrevrange key start end(默认按desc进行降序输出)
-
zrem 移除一个元素:zrem K e...
-
zcard 统计集合长度:zcard K
-
zscore 根据元素获取评分:zscore K e1
网友评论