redis 数据不同类型操作命令
list 操作命令
添加操作:
lpush 向左添加数据 列子: lpush key 1 2 3 存: 3 2 1 后面添加的数据会在最左边
rpush 向右添加数据 列子: lpush key 1 2 3 存: 1 2 3 后面添加的数据会在最右边
获取操作:
lrange key start stop 列子: lrange key 0 -1 获取 某个key里面所有的值 (0 -1代表所有的值)
lindex key index(获取某个索引对应值)
llen key(key里面值个数)
移除操作:
lpop key 移除左
rpop key 移除右
删除操作:
"3" "11" "2" "1" 执行lrem key2 1 "11" 后 数据成为了 "3" "2" "1"
lrem key2 1 "11" 从左往右删除 1代表删除一个元素 这个元素是“11”
在某个值前面加一个值或者后面加一个值
原数据: 1 2 3 linsert key2 before 2 11 在key2里面值为2的前面加上11
改变后的数据: 1 11 2 3
原数据: 1 2 3 linsert key1 after 2 5 在key2里面值为2的后面加上5
改变后的数据: 1 2 5 3
替换操作
lset<key><index><value>将列表key下标为index的值替换为value
原列表key2中的数据: 3 2 1 lset key2 0 9 执行此命令后的数据变为了 9 2 1
set操作命令(不重复)
添加操作:
sadd key value value...
获取操作:
smembers key 获取某个key里所有的值
判断集合中key是否包含该value值
sismember <key><value>判断集合<key>是否含有该<value>值,有返回1,没有返回0
获取key中元素的个数
scard <key>
删除key集合中某个元素
srem<key><value1><value2>...
随机从集合中吐出[count]个值(吐出来的值 该集合中就没有了)
spop <key> spop key 2 随机从key中吐出两个值(key的名字取的就是key) 如果值取完了那么该key也就没了
随机从该集合中取出N个值,不会从集合中删除
srandmember <key><n>
将集合中的值移动到另一个集合中(移动的值在另一个集合中存在了则会覆盖 set是不重复的)
smove <key1><key2><value> 每次只能移动一个值!
返回两个集合的交集元素
sinter <key1><key2> (两个集合中相同的元素)
返回两个集合的并集元素
sunion <key1><key2> (两个集合中所有的元素合在一起)
返回两个集合的差集元素
sdiff <key1><key2> (key1中不包含key2中的 反之则亦然)
sorted_set基本操作命令
新的存储需求:根据排序有利于数据的有效显示,需要提供一种可以根据自身特征进行排序的方式
需要的存储结构:新的存储模型,可以保存可排序的数据
sorted_set类型:在set的存储结构基础上添加可排序字段
添加数据:
zadd key score1 member1 [score2 member2]
示列: zadd k1 100 apple 30 huawei 60 xiaomi
获取全部数据
zrange key start stop [WITHSCORES] zrange k1 0 -1 分数值小的排前面
zrevrange key start stop [WITHSCORES] 分数值大的排前面
删除数据:
zrem key member [member …] zrem k1 apple 删除apple这个值
按条件获取数据
zrangebyscore key min max [WITHSCORES] [LIMIT] zrangebyscore k1 70 100 withscores
获取分数值在70~100之间的value 分数值小的排前面
zrevrangebyscore key max min [WITHSCORES] zrevrangebyscore k1 100 70 withscores
获取分数值在100~70之间的value 分数值大的排前面
按条件删除数据:
zremrangebyrank key start stop
zremrangebyscore key min max
获取集合数据总量 :
zcard key
zcount key min max
集合交、并操作
zinterstore destination numkeys key [key …]
zunionstore destination numkeys key [key …]
centos查看进程或者杀死进程
centos7查看进程&杀死进程
ps -ef|grep ****程序名
例如
ps -ef|grep redis
kill -9 进程ID
例如kill -9 2100
String操作命令
添加/修改数据:
set key value
获取数据 :
get key
删除数据:
del key
判定性添加数据 :
setnx key value 如果key 已经存在则添加失败,相当于就是添加的时候做了一个判断key是否存在
添加/修改多个数据 :
mset key1 value1 key2 value2 …
获取多个数据 :
mget key1 key2 …
获取数据字符个数(字符串长度):
strlen key
追加信息到原始信息后部(如果原始信息存在就追加,否则新建):
append key value
String扩展操作命令
key中value增加:
incy key 原数据:1 使用后 数据为2 自增+1
incrby key increment 原数据:1 incrby k1 100 使用该命令后的数据为101 可以增加数值的值
incrbyfloat key increment 可以增加浮点数 demo: incrby k1 10.5
key中value减少:
decr key demo:使用该命令后数值每次减一
decrby key increment 同增加一样的使用
设置数据具有指定的生命周期 :
setex key seconds(秒) value key中添加一个数据可以存活多少秒 setex k1 10 2(k1中添加的数据2生命周期只有10秒,10秒过后就没有值了)
psetex key milliseconds(毫秒) value 和上面一样 只是单位是毫秒
hash基本操作命令(存储结构:一个存储空间保存多个键值对数据 )
添加/修改数据 :
hset key field value hset user fs 100 bk 200 \
HSET key field value 将哈希表 key 中的字段 field 的值设为 value
获取数据 :
hget key field 获取单个key 对应的value field是key 获取对应field对应的值
hgetall key 获取所有的key以及对应的value
删除数据:
hdel key field1 [field2] 原数据:"name" "1", "fs" "2"
hdel user fs 使用该命令后的数据:"bk" "200" user集合里面fs这个key没了
设置field的值,如果该field存在则不做任何操作:
hsetnx key field value 如果没有这个key则会创建这个key并添加值 已经存在一个key的话则不做任何操作
添加/修改多个数据 :
hmset key field1 value1 field2 value2 …
获取多个数据:
hmget key field1 field2 …
获取哈希表中字段的数量:
hlen key
获取哈希表中是否存在指定的字段
hexists key field
hash扩展操作
获取哈希表中所有的字段名或字段值
hkeys key
hvals key
设置指定字段的数值数据增加指定范围的值
hincrby key field increment
hincrbyfloat key field increment
hash常用命令小结:
Redis hash 是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象,常用命令:
HSET key field value 将哈希表 key 中的字段 field 的值设为 value HGET key field 获取存储在哈希表中指定字段的值
HDEL key field 删除存储在哈希表中的指定字段
HKEYS key 获取哈希表中所有字段
HVALS key 获取哈希表中所有值
HGETALL key 获取在哈希表中指定 key 的所有字段和值
常用命令:
key的扩展操作:
keys parrten
查询模式规则
*:匹配任意数量的任意符号 ? :配合一个任意符号 [] :匹配一个指定符号
keys * 查询所有 keys it* 查询所有以it开头
keys *xml 查询所有以xml结尾 keys ??test 查询所有前面两个字符任意,后面以test结尾
查询所有以 keys user:? 查询所有以user:开头,最后一个字符任意 keys u[st]er:1
查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
数据库指令
切换数据库
select index
数据移动
move key db
理解为剪切,如果对应db有相同key则失败
数据总量
dbsize
获取key 的个数
数据清除
flushdb flushall
不要轻易使用!会让所有库中数据销毁
keys parrten
###### 查询模式规则
```text
*:匹配任意数量的任意符号 ? :配合一个任意符号 [] :匹配一个指定符号
keys * 查询所有 keys it* 查询所有以it开头
keys *xml 查询所有以xml结尾 keys ??test 查询所有前面两个字符任意,后面以test结尾
查询所有以 keys user:? 查询所有以user:开头,最后一个字符任意 keys u[st]er:1
查询所有以u开头,以er:1结尾,中间包含一个字母,s或t
数据库指令
切换数据库
select index
数据移动
move key db
理解为剪切,如果对应db有相同key则失败
数据总量
dbsize
获取key 的个数
数据清除
flushdb flushall
不要轻易使用!会让所有库中数据销毁