redis学习笔记之三:Redis的基本操作

n 对Keys的操作命令
1:Keys:获得符合规则的键名列表
格式是keys pattern,pattern支持glob风格通配符格式:
(1)? 匹配一个字符
(2)* 匹配任意个字符
(3)[] 匹配中括号内的任一字符,可以用-来表示一个范围
(4)\x 匹配字符x,用于转义符号
2:exists:判断键值是否存在,格式是exists key
3:del:删除key,格式是del key。
小技巧:Del命令不支持通配符,可以结合linux管道和xargs命令来自定义
删除,示例如下:redis-cli keys k* | xargs redis-cli del
4:type:获得键值的数据类型,格式是type key
5:rename:改名,格式是rename oldKey newKey
6:renamenx:如果不存在则改名,格式是rename oldKey newKey

n 对String类型的操作命令
1:get、set、del:获取key的值、设置key和值、删除key
2:incr、decr:递增和递减整数值,格式是incr key值
3:incrby、decrby:递增和递减整数值,可指定增减的数值,格式是incrby key值 正负数值
4:incrbyfloat:递增和递减浮点数值,格式是incrbyfloat key值 正负数值
5:append:在尾部追加值,格式是append key值 追加的值
6:getrange:获取指定索引范围内的值,格式是getrange key值 起始索引 结束索引
7:setrange:从索引位置开始设置后面的值,格式是setrange key值 offset索引 值
8:strlen:返回键值的长度,格式是strlen key值
9:mget:同时获得多个键的值,格式是mget 多个key值
10:mset:同时设置多个键值对,格式是mset key值 value , key和value可以多对
11:bitcount:获取范围内为1的二进制位数,格式是bitcount key值 [start end]
12:getbit:获取指定位置的二进制位的值,格式是getbit key值 offset索引
13:setbit:设置指定位置的二进制位的值,格式是setbit key值 offset索引 值
14:bitop:对多个二进制值进行位操作,格式是bitop 操作 目的key key值1 key值2,操作有and、or、
xor、not,key值可以是多个
15:getset:原子的设置key的值,并返回key的旧值 ,格式是getset key value

n 对List类型的操作命令
1:lpush/rpush:添加值,格式是 rpush list的key item项的值,值可以是多个
2:lrange:按索引范围获取值,格式是 lrange list的key 起始索引 终止索引,-1表示最后一个索引
3:lindex:获取指定索引的值,格式是 lindex list的key 索引号
4:lpop/rpop:弹出值,格式是 lpop list的key
5:llen:获取元素个数,格式是llen list的key
6:lrem:删除元素,格式是lrem list的key 数量 item项的值,数量可正负,表示从左或右删除,如果数
量为0,表示删除全部与给定值相等的项
7:ltrim:保留指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引
8:blpop/brpop:弹出值,格式是blpop list的key值 过期时间,key可以是多个,如果没有值,会一值等
待有值,直到过期
9:rpoplpush:将元素从一个列表转移到另外一个列表,格式是rpoplpush 源list的key值 目的list的key

10:brpoplpush:将元素从一个列表转移到另外一个列表,格式是brpoplpush 源list的key值 目的list的
key值 过期时间
11:lset:设置指定索引的值,格式是lset list的key 索引 新的值
12:linsert:插入元素,格式是linsert list的key before|after 定位查找的值 添加的值
 

n 对Set类型的操作命令
1:sadd:添加元素,格式是 sadd set的key item项的值,item项可以多个
2:smembers:获取集合中所有元素,格式是 smembers set的key
3:sismember:判断元素是否在集合众,格式是 sismember set的key item项的值
4:srem:删除元素,格式是 srem set的key item项的值
5:scard:获取集合中元素个数,格式是scard set的key
6:srandmember:随机获取集合中的元素,格式是srandmember set的key [数量],数量为正的时候,会随
机获取这么多个不重复的元素;如果数量大于集合元素个数,返回全部;如果数量为负,会随机获得这
么多个元素,可能有重复
7:spop:弹出元素,格式是spop set的key
8:smove:移动元素,格式是smove 源set的key 目的set的key item项的值
9:sdiff:差集,返回在第一个set里面而不在后面任何一个set里面的项,格式是sdiff set的key 用来比
较的多个set的key
10:sdiffstore:差集并保留结果,格式是命令 存放结果的set的key set的key 用来比较的多个set的key
11:sinter:交集,返回多个set里面都有的项,格式是sinter 多个set的key
12:sinterstore:交集并保留结果,格式是sinter 存放结果的set的key 多个set的key
13:sunion:并集,格式是sunion 多个set的key
14:sunionstore:并集并保留结果,格式是sunionstore 存放结果的set的key 多个set的key
 

n 对Hash类型的操作命令
1:hset:设置值,格式是hset Hash的Key 项的key 项的值
2:hmset:同时设置多对值,格式是hmset Hash的Key 项的key 项的值,项的key和值可多对
3:hgetall:获取该Key下所有的值,格式是hgetall Hash的Key
4:hget:获取值,格式是hget Hash的Key 项的key
5:hmget:同时获取多个值,格式是hmget Hash的Key 项的key,项的key可以是多个
6:hdel:删除某个项,格式是hdel Hash的Key 项的key
7:hlen:获取Key里面的键值对数量,格式是hlen Hash的Key
8:hexists:判断键值是否存在,格式是hexists Hash的Key 项的key
9:hkeys:获取所有Item的key,格式是hkeys Hash的Key
10:hvals:获取所有Item的值,格式是hvals Hash的Key
11:hincrby:增减整数数字,格式是hincrby Hash的Key 项的key 正负整数
12:hincrbyfloat:增减Float数值,格式是hincrbyfloat Hash的Key 项的key 正负float
13:hsetnx:如果项不存在则赋值,存在时什么都不做,格式是hsetnx Hash的Key 项的
key 项的

n 对ZSet类型的操作命令
1:zadd:添加元素,格式是zadd zset的key score值 项的值,Score和项可以是多对,score可以是整数,
也可以是浮点数,还可以是+inf表示正无穷大,-inf表示负无穷大
2:zrange:获取索引区间内的元素,格式是zrange zset的key 起始索引 终止索引 (withscores)
3:zrangebyscore:获取分数区间内的元素,格式是zrangebyscore zset的key 起始score 终止score
(withscores),默认是包含端点值的,如果加上“(”表示不包含;后面还可以加上limit来限制
4:zrem:删除元素,格式是zrem zset的key 项的值,项的值可以是多个
5:zcard:获取集合中元素个数,格式是zcard zset的key
6:zincrby:增减元素的Score,格式是zincrby zset的key 正负数字 项的值
7:zcount:获取分数区间内元素个数,格式是zcount zset的key 起始score 终止score
8:zrank:获取项在zset中的索引,格式是zrank zset的key 项的值
9:zscore:获取元素的分数,格式是zscore zset的key 项的值,返回项在zset中的score
10:zrevrank:获取项在zset中倒序的索引,格式是zrevrank zset的key 项的值
11:zrevrange:获取索引区间内的元素,格式是zrevrange zset的key 起始索引 终止索引 (withscores)
12:zrevrangebyscore:获取分数区间内的元素,格式是zrevrangebyscore zset的key 终止score 起始
score (withscores)
13:zremrangebyrank:删除索引区间内的元素,格式是zremrangebyrank zset的key 起始索引 终止索引
14:zremrangebyscore:删除分数区间内的元素,格式是命令 zset的key 起始score 终止score
15:zinterstore:交集,格式是ZINTERSTORE dest-key key-count key [key ...] [WEIGHTS weight
[weight ...]] [AGGREGATE SUM|MIN|MAX]
16:zunionstore:并集,格式是ZUNIONSTORE dest-key key-count key [key ...] [WEIGHTS weight
[weight ...]] [AGGREGATE SUM|MIN|MAX]
 

n 排序
1:sort:可以对List、Set、ZSet里面的值进行排序。格式是SORT source-key [BY pattern] [LIMIT
offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE dest-key]
2:by:设置排序的参考键,可以是字符串类型或者是Hash类型里面的某个Item键,格式是 Hash键名:*-
>Item键。设置了by参考键,sort将不再依据元素的值来排序,而是对每个元素,使用元素的值替换参
考键中的第一个”*”,然后获取相应的值,再对获得的值进行排序。
如果参考键不存在,默认为0。
如果参考键值一样,再以元素本身的值进行排序。
3:get:指定sort命令返回结果包含的键的值,形如: Hash键名:*->Item键,可以指定多个get,返回的时
候,一行一个。如果要返回元素的值,用get #。
4:对较大数据量进行排序会严重影响性能,使用建议:
(1)尽量减少待排序集合中的数据
(2)使用limit来限制获取的数据量
(3)如果要排序的数据量较大,可以考虑使用Store参数来缓存结果
 

n 处理过期keys的机制
当client主动访问key时,会先对key进行超时判断,过时的key会立刻删除;另外
Redis会在后台,每秒10次的执行如下操作: 随机选取100个key校验是否过期,如果有25
个以上的key过期了,立刻额外随机选取下100个key(不计算在10次之内)。也就是说,如果
过期的key不多,Redis最多每秒回收200条左右,如果有超过25%的key过期了,它就会做得
更多,这样即使从不被访问的数据,过期了也会被删除掉。
n 处理过期keys的命令
1:expire:设置过期时间,格式是expire key值 秒数
2:expireat:设置过期时间,格式是expireat key值 到秒的时间戳
3:ttl:查看还有多少秒过期,格式是ttl key值,-1表示永不过期,-2表示已过期
4:persist:设置成永不过期,格式是persist key值,删除key的过期设置;另外使用set或
者getset命令为键赋值的时候,也会清除键的过期时间
5:pttl:查看还有多少毫秒过期,格式是pttl key值
6:pexpire:设置过期时间,格式是pexpire key值 毫秒数
7:pexpireat:设置过期时间,格式是pexpireat key值 到毫秒的时间戳
 

猜你喜欢

转载自blog.csdn.net/u010800970/article/details/81348804