redis基本命令学习
来源:互联网 发布:安卓版cad软件 编辑:程序博客网 时间:2024/05/09 15:19
redis基本命令学习
1.redis是key-value存储的,放在内存中,并在磁盘持久化的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
通过set key value来存储,通过get key来获取值
set key value:设置key的值,若存在则覆盖setnx key value:SET if Not eXists,若存在则不操作。MSET key1 value1 key2 value2 ... keyN valueN:设置这些key的值,若存在则覆盖get key:获取key对应的值MGET key1 key2 ... keyN:获取这些key对应的值MSETNX key1 value1 key2 value2 ... keyN valueN:同mset,但如果其中一个key已经存在了,则都不设置。这些操作都是原子的。
EXISTS key:查看是否存在该元素。GETSET key value:获取该元素的值,并给该元素设置新值。(通常和incr搭配使用,比如一个mycount一直incr,然后达到某些情况需要清零,清零之前需要知道mycount的值).del key:删除元素RENAME oldkey newkey:重命名
2.redis提供原子自增操作incr,用来防止多线程并发出现数据错误。
incr key:原子的+1;DECR key:原子的-1;DECRBY key integer:原子的-integer;INCRBY key integer:原子的+integer
3.删除操作:del.若数据不存在返回(nil)
4.redis可以定时存储,即设置几秒后删除该变量
expire key 多少秒:设置多少秒后过期; ttl key:Time To Live,查看还可以存活多久,-2表示key不存在;-1表示定时任务消失,永久存储。
EXPIRE key seconds:设置该元素多少秒后失效PEXPIRE key milliseconds:设置该元素多少毫秒后失效TTL key:查看还可以存活多少秒,-2表示key不存在,-1表示永久存储SETEX key seconds value:等价于先设置变量再设置超时,即在缓存中使用:存储的同时设置超时时间,这个操作是原子的
5.存储有序队列:list
rpush keyList value:向keyList添加元素,向后加,r表示右边lpush keyList value:向keyList左边添加元素,LPUSH puts the new value at the start of the list.lrange keyList beginIndex endIndex:获取keyList的元素,用两端的索引取出子集,endIndex=-1则表示全部取出
这里就要了解redis数据结构的存储类型, 字符串(strings), 散列(hashes), 列表(lists),集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
现在学习list
llen keyList :获取keyList的长度大小lpop keyList:取出并移除keyList第一个元素,左边的元素rpop keyList:取出并移除keyList最后一个元素,右边的元素LINDEX key index:获取该索引下的元素。lrem key count value:删除count个value。(count为正数,从头开始,删除count个value元素;count为负,则从尾部向头删除|count|个value元素;count为0,则所有的元素为value的都删除)LSET key index value:设置索引为index下的元素为value.超出索引范围报错。LTRIM key start end:清空索引在start 和end之外的元素,索引从0开始,两端保留,两端之外的清空。RPOPLPUSH srckey dstkey:源队列srckey,目标队列dstkey,将srckey的最后一个移除,并放到dstkey的第一个。
6.无序且唯一集合set
和java中list与set的区别一样。这里的set无序且值唯一。
The next data structure that we'll look at is a set. A set is similar to a list, except it does not have a specific order and each element may only appear once. Some of the important commands in working with sets are SADD, SREM, SISMEMBER, SMEMBERS and SUNION.
sadd key value : 向set添加元素srem key value :从set中移除元素smembers key : 取出所有set元素SISMEMBER key value: 查看value是否存在set中SUNION key1 key2 ... keyN:将所有key合并后取出来,相同的值只取一次scard key : 获取set中元素的个数SDIFF key1 key2 ... keyN:获取第一set中不存在后面几个set里的元素。SDIFFSTORE dstkey key1 key2 ... keyN:和sdiff相同,获取key1中不存在其他key里的元素,但要存储到dstkey中。SINTER key1 key2 ... keyN:取出这些set的交集SINTERSTORE dstkey key1 key2 ... keyN:取出这些key的交集并存储到dstkeySMOVE srckey dstkey member:将元素member从srckey中转移到dstkey中,这个操作是原子的。
7.有序集合sorted set
和set一样,唯一。但z多了个score用来排序。所以命令又像list一样:
ZADD key score member:向有序set中添加元素member,其中score为分数,默认升序;ZRANGE key start end [WITHSCORES]:获取按score从低到高索引范围内的元素,索引可以是负数,-1表示最后一个,-2表示倒数第二个,即从后往前。withscores可选,表示获取包括分数。ZREVRANGE key start end [WITHSCORES]:同上,但score从高到低排序。ZCOUNT key min max:获取score在min和max范围内的元素的个数ZCARD key:获取集合中元素的个数。ZINCRBY key increment member:根据元素,score原子增加increment.ZREMRANGEBYSCORE key min max:清空集合内的score位于min和max之间的元素。ZRANK key member:获取元素的索引(照score从低到高排列)。ZREM key member:移除集合中的该元素ZSCORE key member:获取该元素的score
8.对象存储Hashes
可以存储对象,比如人,编号,姓名,年龄等
HSET key field value:key是对象名,field是属性,value是值;HMSET key field value [field value ...]:同时设置多个属性HGET key field:获取该对象的该属性HMSET key field value [field value ...]:获取多个属性值HGETALL key:获取对象的所有信息HKEYS key:获取对象的所有属性HVALS key:获取对象的所有属性值HDEL key field:删除对象的改属性HEXISTS key field:查看对象是否存在该属性HINCRBY key field value:原子自增操作,只能是integer的属性值可以使用;HLEN key: Return the number of entries (fields) contained in the hash stored at key.获取属性的个数。
- redis基本命令学习
- redis基本命令学习
- redis学习之一基本命令
- redis学习教程基本命令
- redis学习教程之一基本命令
- LINUX基本命令学习以及安装redis
- redis学习教程之一基本命令
- redis学习教程之一基本命令
- redis学习教程之一基本命令
- redis学习教程之一基本命令
- redis学习教程之一基本命令
- redis学习笔记(14)---redis基本命令总结
- redis基本操作命令
- Redis基本命令
- Redis keys 基本命令
- redis基本操作命令
- Redis 基本命令备忘
- redis基本命令笔记
- 圆角背景ListVIew的实现方法
- 关于js实现SSE的简单实践
- Centos7无法使用ssh登陆及解决方案
- winform 控件事件
- Animation动画详解(四)——ValueAnimator基本使用
- redis基本命令学习
- 博客永久迁移
- Mysql分库分表方案
- 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
- 输入输出流运算重载模板
- DataTable判断某个字段是否有重复数据、数组去重复。
- 分库分表带来的完整性和一致性问题
- 数据库表扩展 扩展属性
- netstat命令