第一部分—熟悉命令
Redis-Key
1、keys *
:查询存在的key
2、exists name
: 查询是否存在为name的key,存在返回1
3、move name 1
: 将name的key移动到数据库1(默认操作数据库0,共有16个数据库0-15)
4、set name yuec
: 存key为name,value为yuec
5、get name
: 获取key为name的值
6、expire name 20
: 设置name的过期时间TTL,单位为秒
7、ttl name
:查看name的过期时间
String (最常用)
1、set k1 v1
:设置/添加string键值
2、get k1
: 获取键k1的值
3、append k1 "xxx"
: 往k1键的值后面追加xxx(即v1xxx),不存在k1,则新建
4、strlen k1
: 查看k1值的长度
5、incr count
: 键count的值自增1(值要为Integer型的)
6、decr count
: 键count的值 count=count-1(值要为Integer型的)
7、incrby count 10
: count=count+10
8、decrby count 10
: count=count-10
9、getrange k1 1 3
: 截取字符串k1值的坐标[1,3]部分(即1xx)
10、setrange k1 2 "v2v"
: 替换指定位置开始的字符串,(即v1v2v)
11、setex k2 10 "hello"
: 设置过期时间10s
12、setnx k2 "world"
:不存在k2时就设置,存在则设置失败
13、mset k1 v1 k2 v2 k3 v3
:同时设置多值
14、mget k1 k2 k3
:同时获取多个值
15、msetnx k4 v4 k5 v5
:原子性操作,要么一起成功,要么一起失败
16、getset k6 v6
: 若存在值,获取原来值,并设置新的值
string是redis使用频率最高的,使用场景有:
计数器,缓存对象,利用mset统计多单位数量等
List
-
lpush list a b c d
: 将一个或多个值放入list列表的左边(对应的还有rpush) -
lrange list 0 -1
: 获取list的全部内容(-1表示最后一个位置) -
lpop list
: 从list的左边取出第一个值(对应的还有rpop) -
ltrim list 1 2
:截取[1,2]的内容 -
rpopplush list newlist
: 组合命令,移除列标的最后一个元素,将它移动到新的列表中,放回移出的值 -
lset list 0 new_word
:将列表的0号元素更新为new_word(list不存在会报错) -
linsert list before|after "b" "f"
:在队列元素b的前面或者后面插入一个值f
Set
set中的值不能重复
-
sadd myset hello
:添加元素 -
smembers myset
: 输出myset -
sismember myset hello
: 判断myset中是否有hello -
scard myset
: 计数myset中有多少元素 -
srem myset hello
: 移除hello元素 -
sdiff key1 key2
: 差集 -
sinter key1 key2
: 交集 -
sunion key1 key2
: 并集
Hash
-
hset myhash field1 value1
: 添加k-v -
hget myhash field1
:查k -
hmset myhash field2 value2 field3 value3
: 添加多个k-v -
hmget myhash field1 field2 field3
:查询多个v -
hgetall myhash
: 查询全部k-v -
hdel myhash field2
: 删除指定k -
hlen myhash
: 获取myhash长度 -
hexists myhash field3
: 判断hash中是否存在指定字段 -
hkeys
:只获取字段k -
hsets
:只获取值 -
hincrby
:增 -
hsetnx
:如果不存在则可以设置,存在则不能设置
Zset 有序集合
-
zadd salary 8000 zhangsan
:添加 -
zrangebyscore salary -inf +inf (withscore)
:显示所有用户,按salary从小到大排序 -
zrevrange salary 0 -1
:显示所有用户,按salary从大到小排序 -
zrange salary 0 -1
:显示所有用户,按salary从小到大排序 -
zrem salary xiaoming
:删除 -
zcard salary
:统计集合中的数量 -
zcount myset 0 8000
:指定区间[0,8000]内存在的个数
重点
事务
Redis事务没有隔离级别的概念
开启事务——multi
命令入队——…
执行事务——exec / 放弃事务——discard
监控
监视对象——watch 对象
开启事务——multi
命令入队——…
执行事务——exec
关闭监视——unwatch