redis基本命令学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redis基本命令学习相关的知识,希望对你有一定的参考价值。

看到大家都需要redis,而我工作却没怎么接触过,特来学习,现在先熟悉指令,我通过redis中文的 互动教程(interactive tutorial)来学习的。

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 SADDSREMSISMEMBERSMEMBERS 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的交集并存储到dstkey
SMOVE 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学习笔记(14)---redis基本命令总结

学习redis-安装和基本一些命令

Redis基本认识和基础学习-基本命令

redis学习基本命令

Redis学习--- 安装基本命令及常见五大数据类型详解

(转) Redis学习教程--基本命令