redis基本操作-redis系列教程
来源:互联网 发布:淘宝网店授权书 编辑:程序博客网 时间:2024/06/05 05:12
Redis服务启动之后使用命令行客户端连接,你也可以借助一些Windows下面的客户端(redisdesktop)来操作。
# /usr/local/bin/redis-cli127.0.0.1:6379>
在下面示例命令中,参数用 []
包裹起来则表示这个参数是可选的,中间的 ...
表示参数的个数是多个。
由于下面命令的操作在Redis官方文档上有示例,所以我只对命令的目的做了说明,并不逐一进行演示。
String
append key value
在值尾部追回字符bitcount key [start end]
获取范围内为1的二进制位数。如果值为字母a,则对应的二进制为01100001(ASCII码97表示小字字母a),则里面存在1的位数就是3个。bitfield key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP|SAT|FAIL]
对字符串执行任意的位域整数运算bitop operation destkey key [key ...]
对多个二进制值进行位操作,操作有and
or
xor
not
。bitpos key bit [start] [end]
将字符串中第一个位的位置返回到1或0decr key
递减整数值(步进为1),如果操作的值不是整数则会出错(error) ERR value is not an integer or out of range
decrby key decrement
递减指定步进的整数值get key
获取指定键的值getbit key offset
获取指定位置的二进制位的值getrange key start end
获取指定索引范围内的值getset key value
原子设置键的值并返回key的旧值incr key
递增或递减整数值(步进为1),如果操作的值不是整数则会出错(error) ERR value is not an integer or out of range
incrby key increment
decrby key decrement
递增或递减指定步进的整数值incrbyfloat key increment
递增和递减浮点数值mget key [key ...]
同时获得多个键的值mset key value [key value ...]
同时设置多个键值msetnx key value [key value ...]
同时设置多个键值,如果设置的键已经存在则本次操作全都会失败。psetex key milliseconds value
设置键值和到期时间(以毫秒为单位)set key value [EX seconds] [PX milliseconds] [NX|XX]
设置键和值。EX设置指定的到期时间(以秒为单位),PX设置指定的到期时间(以毫秒为单位),NX只有在不存在的情况下才设置键,XX只有当它已经存在时才设置键。setbit key offset value
设置指定位置的二进制位的值setex key seconds value
设置键值和到期时间(以秒为单位)setnx key value
设置键值,只有该键不存在时才设置成功。setrange key offset value
在指定索引位置设置值(会从索引位置往后覆盖)strlen key
获取指定键对应的值的长度
List
blpop key [key ...] timeout
从队列左侧弹出值,如果没有值则一直等待并直到过期brpop key [key ...] timeout
从队列右侧弹出值,如果没有值则一直等待并直到过期brpoplpush source destination timeout
将元素从一个列表转移到另一个列表,可以指定超时时间。lindex key index
获取指定索引对应的值linsert key BEFORE|AFTER pivot value
在指定值前或后插入元素,不会发生覆盖指定值的情况。llen key
获取队列中元素的个数lpop key
从队列左边中弹出值,弹出后队列中就没有这个值了。lpush key value [value ...]
添加一个或多个值,从列表左侧加入lpushx key value
添加一个值,只有当列表存在时才将值添加进去(不会自动创建列表)lrange key start stop
按索引范围获取列表值,-1表示最后一个索引lrem key count value
删除元素,count可正负,表示从左或右删除,如果值为0表示删除全部与给定值相等的项。lset key index value
设置列表中指定索引的值,原来的值会被覆盖ltrim key start stop
保留指定索引区间的元素rpop key
从队列右边中弹出值,弹出后队列中就没有这个值了。rpoplpush source destination
将元素从一个列表转移到另一个列表,目的列表名称可以是自身。rpush key value [value ...]
添加一个或多个值,从列表右侧加入rpushx key value
只有列表存在时才将值添加到列表中
Set
sadd key member [member ...]
往集合中添加元素,重复加的元素会去重scard key
统计集合中的元素个数sdiff key [key ...]
差集,返回在第一个set里面而不在后面任何一个set里面的项sdiffstore destination key [key ...]
差集并保留结果到指定集合中sinter key [key ...]
交集,返回多个set里面都有的项sinterstore destination key [key ...]
交集并保留结果到指定的集合中sismember key member
判断元素是否在集合中 ,如果存在则返回1,反之返回0smembers key
获取集合中所有元素smove source destination member
移动元素spop key [count]
可以弹出元素,弹出的个数可以选填srandmember key [count]
随机获取集合中的元素,数量为正时会随机获取多个不重复的元素;如果数量为负会随机返回多个重复的元素;数量大于集合元素则返回全部。srem key member [member ...]
从集合中删除元素sunion key [key ...]
并集,合并多个集合中的元素,如果有重复元素则去重sunionstore destination key [key ...]
并集并保留结果到指定集合中sscan key cursor [MATCH pattern] [COUNT count]
基于游标遍历集合
Hash
hdel key field [field ...]
删除某个项,并不会删除这个键hexists key field
判断键里面的值是否存在hget key field
获取指定键下面某个元素对应的值hgetall key
获取该键下面所有的键值对hincrby key field increment
增减整数数值,前提是项的值必须是整数hincrbyfloat key field increment
增减浮点数值hkeys key
获取所有项的键hlen key
获取键里面的键值对数量hmget key field [field ...]
同时获取多个值hmset key field value [field value ...]
同时设置多个值hset key field value
设置值hsetnx key field value
设置值,如果field不存在时才设置hstrlen key field
获取键值对中值的字符长度hvals key
获取所有项的值hscan key cursor [MATCH pattern] [COUNT count]
基于游标遍历集合
ZSet
zadd key [NX|XX] [CH] [INCR] score member [score member ...]
添加元素,score和项可以是多对,score可以是整数或浮点数,+inf表示正无穷大,-inf表示负无穷大。zcard key
统计集合中元素个数zcount key min max
获取分数区间内元素个数zincrby key increment member
增减元素的分数zinterstore destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
交集zlexcount key min max
获取值按字典顺序区间内元素个数zrange key start stop [WITHSCORES]
获取索引区间内的元素zrangebylex key min max [LIMIT offset count]
获取区间元素根据值的字典顺序zrevrangebylex key max min [LIMIT offset count]
获取区间元素根据值的字典顺序,结果是倒序的。zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
获取分数区间内的元素,默认包含端点值,如果加上(
表示不包含。可以使用limit限制返回元素个数。zrank key member
获取元素在集合中的索引zrem key member [member ...]
删除一个或多个元素zremrangebylex key min max
删除索引区间内的元素,根据值的字典顺序计算区间zremrangebyrank key start stop
删除索引区间内的元素zremrangebyscore key min max
删除分数区间内的元素zrevrange key start stop [WITHSCORES]
获取索引(倒序)区间内的元素zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
获取分数(倒序)区间内的元素zrevrank key member
获取元素在集合中的倒序的索引,即从右往左计算(或从下往上计算)zscore key member
获取元素的分数zunionstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
并集zscan key cursor [MATCH pattern] [COUNT count]
基于游标遍历集合
排序
sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination]
可以对List、Set和ZSet里面的值排序。BY
设置排序的参考键,可以是字符串类型或者Hash类型里面的某个Item键,格式:Hash键名:*->Item键。使用此参数后sort不再依据元素的值来排序,它会将每个元素的值替换成参考键中的第一个*
,然后获取相应的值并对其排序。如果参考键不存在则默认为0,如果参考键的值一样,再以元素本身的值进行排序。GET
指定sort命令返回结果包含的键的值,格式:Hash键名:*->Item键,可以指定多个get,其返回的结果一行一个。如果要返回元素的值使用GET #
。- 对较大数据量排序会严重影响性能,建议:
- 尽量减少待排序集合中的数据
- 使用limit来限制获取的数据量
- 如果要排序的数据量较大,可以考虑使用store参数来缓存结果。
数据过期机制
- 当客户端主动访问某个key时,redis服务会对找到的key进行超时判断,过期的key此刻会被立刻删除;
- redis服务在后台每秒10次执行如下操作:
- 随机选取20个key校验是否过期
- 删除所有已发现的键
- 如果超过25%的键已过期,则重新开始第一步操作。
- 在过期key不多的情况下redis最多每秒回收200条左右,这种简单的概率算法保证不被访问的数据,在过期之后也会被及时删除。
处理过期键
expire key seconds
设置过期时间,单位秒expireat key timestamp
设置过期时间,到秒的时间戳ttl key
查看键的生存时间,单位秒,-1表示永不过期,-2表示已过期persist key
设置键永不过期;使用set或getset命令为键赋值的时候也会清除原先的过期时间。pttl key
查看还有多少毫秒过期pexpire key milliseconds
设置过期时间,单位毫秒pexpireat key milliseconds-timestamp
设置过期时间,到毫秒的时间戳
阅读全文
1 0
- redis基本操作-redis系列教程
- redis基本数据类型-redis系列教程
- Redis学习系列——Redis基本教程
- Redis教程分享系列
- redis的基本操作
- redis基本操作
- Redis基本操作
- Redis基本操作
- redis基本操作
- Redis基本操作
- redis基本操作命令
- redis基本操作
- php redis 基本操作
- Redis基本操作
- redis基本操作
- Redis 基本操作
- redis的基本操作
- redis基本操作
- Paint绘制简单的进度条
- Javascript学习之匿名函数与自执行详解
- 小程序没有授权时的处理方法
- 用邻接表的方式解决 207. Course Schedule
- pyalgotrade教程2--第一笔交易
- redis基本操作-redis系列教程
- ScrollView嵌套 ListView显示不全
- OC基础-匿名对象 07
- std::ios_base::ios_base(const std::ios_base&)' is private 错误
- 作业
- Post with HttpClient
- CentOS 7下搭建配置SVN服务器
- mac下安装redis以及redis扩展-----xampp
- Oracle数据库安装及简介