1.先找到redis.conf当前目录
再输入redis-server liconfig/redis.conf来运行redis
2.输入redis-cli -p 6379进入命令
3.输入ping
set name li #设置key value get name ##获得value keys * ##获得所有key EXISTS name #判断该key是否存在 move name 1 #移动当前的key到1库 del name ## 删除当前key EXPIRE name 10 #倒计时删除key 当前为10s ttl name #可以当前key的剩余时间,当为-2的时候,即被删除 type name #查看当前key的类型 APPEND name hello #往当前key的value后面追加hello,如果当前key不存在,则会自动添加一个key,相当于set set age 10 incr age #让age+1 incrby age 1 decr age #让age-1 decrby age 1 getrange name 0 3 #截取字符串 setrange name 1 xx #改变指定下角标字符为xx setex(set with expire) #设置key并附带过期时间 setex name 30 li setnx(set if not exist) #该key不存在则设置,如果存在则不会设置成功 mset k1 v1 k2 v2 k3 v3#设置多个key value mget k1 k2 k3 #获得多个key的value 127.0.0.1:6379> set user:1 {name:zhangsan,age:3} #设置一个对象,编号为1 OK 127.0.0.1:6379> get user:1 "{name:zhangsan,age:3}" 127.0.0.1:6379> get user (nil) 127.0.0.1:6379> mset user:2:name lisi user:2:age 3#同理用mset设置一个对象,编号为2 OK 127.0.0.1:6379> get user (nil) 127.0.0.1:6379> mget user:2:name user:2:age 1) "lisi" 2) "3" 127.0.0.1:6379> getset db redis #先获得原来的值,再设置新的值 (nil) 127.0.0.1:6379> get db "redis" 127.0.0.1:6379> getset db mongdb "redis" 127.0.0.1:6379> get db "mongdb"
不会的命令可以到中文官网查: http://www.redis.cn/commands.html
List命令所有list命令都是l开头
127.0.0.1:6379> lpush list one #将一个值或多个值,放入队列,从左边放入 (integer) 1 127.0.0.1:6379> lpush list two (integer) 2 127.0.0.1:6379> lpush list three (integer) 3 127.0.0.1:6379> lrange list 0 -1#获取list全部的值 1) "three" 2) "two" 3) "one" 127.0.0.1:6379> lrange list 0 1 1) "three" 2) "two" 127.0.0.1:6379> rpush list right#将一个值或多个值,从右边放入队列 (integer) 4 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "two" 3) "one" 4) "right" 127.0.0.1:6379> lpop list#从左边移除队列第一个元素 "three" 127.0.0.1:6379> rpop list#从右边移除队列第一个元素 "right" ##list可以理解为是一个双向列表,l是队头,r是队尾,redis支持队列操作队列,队尾 127.0.0.1:6379> lrange list 0 -1 1) "four" 2) "three" 3) "two" 4) "one" 127.0.0.1:6379> lindex list 1 #得到指定下标的值 "three" ====================================== 127.0.0.1:6379> lrange list 0 -1 1) "one" 2) "three" 3) "four" 4) "three" 5) "two" 6) "one" 127.0.0.1:6379> lrem list 1 one #删除一个one (integer) 1 127.0.0.1:6379> lrange list 0 -1 1) "three" 2) "four" 3) "three" 4) "two" 5) "one" 127.0.0.1:6379> lrem list 2 three #删除两个three (integer) 2 127.0.0.1:6379> lrange list 0 -1 1) "four" 2) "two" 3) "one" ================================== 127.0.0.1:6379> lrange list 0 -1 1) "hello" 2) "hello1" 3) "hello2" 4) "hello3" 5) "hello4" 127.0.0.1:6379> ltrim list 1 2#通过下标截取指定的长度,这个list被改变,只剩下截取下来的元素 OK 127.0.0.1:6379> lrange list 0 -1 1) "hello1" 2) "hello2" 127.0.0.1:6379> rpoplpush list mylist#将原来list中的元素弹出,放入另一个列表mylist中 "hello2" 127.0.0.1:6379> lrange list 0 -1 1) "hello1" 127.0.0.1:6379> lrange mylist 0 -1 1) "hello2" ================================ 127.0.0.1:6379> lset list 0 item #将列表中指定下标的值图换位另外一个值 OK 127.0.0.1:6379> lrange list 0 -1 1) "item" 127.0.0.1:6379> lset list 1 other #如果该下标不存在,则会报错 (error) ERR index out of range ======================= 127.0.0.1:6379> lrange list 0 -1 1) "item" 127.0.0.1:6379> linsert list before item other #在列表指定元素之前插入数据 (integer) 2 127.0.0.1:6379> lrange list 0 -1 1) "other" 2) "item" 127.0.0.1:6379> linsert list after item after#在指定元素之后插入数据 (integer) 3 127.0.0.1:6379> lrange list 0 -1 1) "other" 2) "item" 3) "after"set集合
127.0.0.1:6379> sadd myset hello #往set里添加参数 (integer) 1 127.0.0.1:6379> sadd myset world (integer) 1 127.0.0.1:6379> sadd myset li (integer) 1 127.0.0.1:6379> smembers myset#获取set集合元素 1) "hello" 2) "world" 3) "li" 127.0.0.1:6379> sismember myset li#查询指定元素在不在set集合中 (integer) 1 127.0.0.1:6379> sismember myset lir (integer) 0 ====================================== 127.0.0.1:6379> scard myset#获得set集合元素个数 (integer) 3 127.0.0.1:6379> srem myset 1 (integer) 0 127.0.0.1:6379> smembers myset 1) "hello" 2) "world" 3) "li" 127.0.0.1:6379> srem myset hello #移除指定元素,不可以用下角标 (integer) 1 127.0.0.1:6379> smembers myset 1) "world" 2) "li" ===================================== set 是一个无序不重复的集合,所以操作几乎都是无序的 127.0.0.1:6379> SRANDMEMBER myset #随机抽选出一个元素 1) "world" 127.0.0.1:6379> SRANDMEMBER myset 1#随机抽选出指定个数元素 1) "li" 127.0.0.1:6379> SRANDMEMBER myset 1 1) "li" =================================127.0.0.1:6379> sadd myset 1 (integer) 1 127.0.0.1:6379> sadd myset 12 (integer) 1 127.0.0.1:6379> sadd myset 123 (integer) 1 127.0.0.1:6379> sadd myset 1234 (integer) 1 127.0.0.1:6379> SMEMBERS myset#set是无序 1) "1" 2) "li" 3) "world" 4) "123" 5) "1234" 6) "12" 127.0.0.1:6379> spop myset#随机删除一个元素 "123" 127.0.0.1:6379> SMEMBERS myset 1) "world" 2) "1" 3) "1234" 4) "12" 5) "li" ========================== 127.0.0.1:6379> smove myset set li#将指定元素移动到另一个set集合中 (integer) 1 127.0.0.1:6379> SMEMBERS myset 1) "world" 2) "1" 3) "1234" 4) "12" 127.0.0.1:6379> SMEMBERS set 1) "li" ====================================== 127.0.0.1:6379> sadd key1 a (integer) 1 127.0.0.1:6379> sadd key1 b (integer) 1 127.0.0.1:6379> sadd key2 c (integer) 1 127.0.0.1:6379> sadd key2 d (integer) 1 127.0.0.1:6379> SDIFF key1 key2#差集key1中相对于key2的差集 1) "a" 2) "b" 127.0.0.1:6379> sadd key2 b (integer) 1 127.0.0.1:6379> SINTER key1 key2#交集 1) "b" 127.0.0.1:6379> SUNIOn key1 key2#并集 1) "a" 2) "c" 3) "d" 4) "b"Hash
Map集合,key-Map(key-{key,value})
127.0.0.1:6379> hmset myhash field1 hello field2 world OK 127.0.0.1:6379> hgetall myhash 1) "field1" 2) "hello" 3) "field2" 4) "world" 127.0.0.1:6379> hlen myhash#获取hash表的字段数量 (integer) 2 ======================================= 127.0.0.1:6379> HEXISTS myhash field1#判断指定字段是否存在 (integer) 1 127.0.0.1:6379> HEXISTS myhash field3 (integer) 0 127.0.0.1:6379> hkeys myhash#获得所有的field 1) "field1" 2) "field2" 127.0.0.1:6379> hvals myhash#获得所有的value 1) "hello" 2) "world" ===================================== 127.0.0.1:6379> hmset user:1 name zhangsan age 3 OK 127.0.0.1:6379> hget user:1 name "zhangsan" 127.0.0.1:6379> hget user:1 age "3"Zset(有序集合)
在set基础上,增加了一个值,set k1 v1 zset k1 score v1
127.0.0.1:6379> zadd key 1 one (integer) 1 127.0.0.1:6379> zadd key 2 two 3 three (integer) 2 127.0.0.1:6379> zrange key 0 -1 1) "one" 2) "two" 3) "three" ========================================== 127.0.0.1:6379> zadd name 25000 xiaohong #添加三个元素 (integer) 1 127.0.0.1:6379> zadd name 2000 xiaoming (integer) 1 127.0.0.1:6379> zadd name 200 zhangsan (integer) 1 127.0.0.1:6379> ZRANGEBYSCORE name -inf +inf#按负无穷和正无穷范围 1) "zhangsan" 2) "xiaoming" 3) "xiaohong" 127.0.0.1:6379> ZRANGEBYSCORE name -inf +inf withscores #排序并带score 1) "zhangsan" 2) "200" 3) "xiaoming" 4) "2000" 5) "xiaohong" 6) "25000" 127.0.0.1:6379> ZRANGEBYSCORE name -inf 2000 withscores #负无穷到 2000 1) "zhangsan" 2) "200" 3) "xiaoming" 4) "2000" 127.0.0.1:6379> ZREVRANGE name 0 -1 withscores#从大到小排序 1) "xiaohong" 2) "25000" 3) "xiaoming" 4) "2000" 5) "zhangsan" 6) "200"