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.获取属性的个数。
0 0
原创粉丝点击