redis - 2 基础操作
1. string基础操作
1.1 基本操作
1. 添加/修改数据 set key value 2. 获取数据 get key 3. 删除数据 del key
1. 添加/修改多条数据 mset k1 v1 k2 v2 2. 获取多条数据 mget k1 k2 3. 获取字符串长度 strlen(key) 4. 拼接到原来的值后面(有则拼接,无则添加) append k v 将v拼接到原先存在的v的后面(200+300=200300)
1.2 对纯数字的string进行加减
1. 对值进行加减
incr key 加1
decr key 减一
incrby key increment 加increment
decrby key increment 减increment
incrbyfloat key 小数操作
1.3 设置键值的有效时间
1. setex key seconds value
2. psetex key milliseconds value
1.4 数据未获取到时,返回nil
1.5 key的设置规则
表名:主键名:主键值:字段名
set stock_base_info:id:3033:name 光明乳业
2. hash
1. 解释
![](https://img2020.cnblogs.com/blog/1815864/202111/1815864-20211114200134446-733320147.png)
2.基本操作
hset key field value
hget key field
hgetall
hdel key field1 [field2]
多条操作
hmset key field1 value1 field2 value2
hmget key field1 field2
获取key对应字段的数量
hlen key
判断是否存在指定字段
hexists key field
3. 进阶操作
获取所有字段名: hkeys key
获取所有字段值:hvals key
字段值增加:hincrby(hincrbyfloat) key field increment
4. 注意
hash的值只能存储字符串(字符串格式的数字,字典都可以),不能存另外的hash
5. 有则不动,无则添加
hsetnx key field value
3. list
1. 类似一个可以从左右进出的通道
2. 注意从先进先出,从左右进与出的顺序决定了他的位置
3. 添加修改数据
lpush key value1 [value2] # 从左边进
rpush key values [value2] # 从右边进
4. 获取数据
lrange key start stop
lindex key index
llen key
5. 获取并移除数据,返回移除的值
lpop key # 左
rpop key # 右
6. 队列实现
blpop key1 [key2] timeout # 如果key1(和key2)中有元素,则直接删除第一个并返回,没有的话,就等待timeout时间,没有就返回nil,有则返回第一个删除的值。
brpop key1 [key2] timeout
7. 删掉指定的值
lrem key count value # 从左边删除count个value值
4. set
1. 与hash结构完全相同,仅存储键,值得部分为nil。因为键不能重复,那么set是不会有重复值的
![](https://img2020.cnblogs.com/blog/1815864/202111/1815864-20211118222334923-1753091648.png)
基本操作
1. 添加数据 sadd key member1 [member2]
2. 获取全部数据 smembers key
3. 删除数据 srem key member1 [member2]
4. 获取集合总量 scard key
5. 判断集合是否包含指定数据 sismember key member
6. 随机查询count条元素,原集合不变 srandmember key [count]
7. 随机删除count条元素并返回 spop key [count]
两个集合交并补
8. 交集:sinter key1 key2
9. 并集:sunion key1 key2
10. 补集:sdiff key1 key2
找出交并补,并存储为新的集合
11. sinterstore destination_key key1 key2
12. sunionstore destination_key key1 key2
13. sdiffstore destionation_key key1 key2
将指定集合从原集合移动到指定集合
14. smove source_key destionation_key member 将source_key中的member移动到destination_key中
5. sorted_set
1. 与set类似,但是在后面加了一个score字段作为排序
![](https://img2020.cnblogs.com/blog/1815864/202111/1815864-20211120150924696-1012134298.png)
基本操作
2. 添加数据:zadd key score1 member1 [score2, member2]
3. 从左到右获取全部数据:zrange key start stop [withscores] # withscores分两行展示member和score
4. 从右到左获取全部数据:zrevrange key start stop [withscores]
5. 删除数据:zrem key member1 [member2]
6. 获取score在min和max之间的数据:zrangebyscore key min max [withscores] [limit]
7. 获取score在min和max之间的数据:zrevrangebyscore key min max [withscores] [limit]
8. 删除索引条件的数据:zremrangebyrank key start stop
9. 删除socre满足条件的数据:zremrangebyscore key min max
10. 获取集合长度:zcard key
11. 获取集合长度: zcard key min max
12. 集合交操作:zinterscore destination numkeys key1 [key2] [aggregate max] 将numkeys个几个按照键做交集并将score默认相加(或者取max)
13. 获取索引值:zrank key memeber
14. 获取score值:zscore key member
15. score值修改:zincreby key increment member