1、Redis的全局操作命令
#查看所有key
keys * 或 keys "*"
#查看匹配前缀的keys
keys "zhang*"
#清空redis
flushdb
#随机取出一个key
randomkey
#查看key的类型
type key
#查看数据库中key的数量
dbsize
#查看服务器信息
info
#重命名key
rename key: 重命名
#删除key
del key
2、Redis一共分为五种基本的数据类型,String,Hash,List,Set,ZSet.下面对这五种基本的数据类型,进行介绍.
2.1、String 类型(通过set key value来存储,通过get key来获取值)
set key value:设置key的值,若存在则覆盖
setnx key value:SET if Not eXists,若存在则不操作。
MSET key1 value1 key2 value2 ... keyN valueN:设置这些key的值,若存在则覆盖
MSETNX key1 value1 key2 value2 ... keyN valueN:同mset,但如果其中一个key已经存在了,则都不设置。这些操作都是原子的。
append key value:向key的字符串追加拼接。
get key:获取key对应的值 MGET key1 key2 ... keyN:获取这些key对应的值
EXISTS key:查看是否存在该元素。
GETSET key value:获取该元素的值,并给该元素设置新值。(通常和incr搭配使用,如一个mycount一直incr,然后达到某些情况需要清零,清零之前需要知道mycount的值)
del key:删除元素
RENAME oldkey newkey:重命名
127.0.0.1:6379> set age 20
OK
127.0.0.1:6379> get age
"20"
2.2、Hash类型
HSET key field value:key是对象名,field是属性,value是值;
HMSET key field value [field value ...]:同时设置多个属性
HGET key field:获取该对象的该属性
HMGET 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.获取属性的个数。
127.0.0.1:6379> hset user_1 name "zhang"
(integer) 1
127.0.0.1:6379> hset user_1 age 18
(integer) 1
127.0.0.1:6379> hgetall user_1
1) "name"
2) "zhang"
3) "age"
4) "18"
2.3、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则表示全部取出
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开始,两端保留,两端之外的清空。
127.0.0.1:6379> RPUSH mylist_1 4
(integer) 1
127.0.0.1:6379> RPUSH mylist_1 5
(integer) 2
127.0.0.1:6379> LPUSH mylist_1 6
(integer) 3
127.0.0.1:6379> LRANGE mylist_1 1 -1
1) "4"
2) "5"
2.4、Set类型
sadd key value : 向set添加元素
srem key value :从set中移除元素
smembers key : 取出所有set元素
SISMEMBER key value: 查看value是否存在set中
SUNION key1 key2 ... keyN:将所有key合并后取出来,相同的值只取一次
scard key : 获取set中元素的个数
SRANDMEMBER key: Return a random element from a Set, without removing the element.随机取出一个
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中,这个操作是原子的。
2.5、ZSet类型( 和set一样,唯一。但z多了个score用来排序)
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
3、redis提供原子自增操作incr,用来防止多线程并发出现数据错误
incr key: 原子的+1;
DECR key:原子的-1;
DECRBY key integer:原子的-integer;
INCRBY key integer:原子的+integer;
测试代码
127.0.0.1:6379> set age 50
OK
127.0.0.1:6379> get age
"50"
127.0.0.1:6379> INCR age
(integer) 51
127.0.0.1:6379> get age
"51"
127.0.0.1:6379> INCRBY age -3
(integer) 48
127.0.0.1:6379> get age
"48"