127.0.0.1:6379> select 1 (--> 选择第一个database)
OK
127.0.0.1:6379[1]> keys * (--> 查看当前数据库都有那些键)
(empty list orset)
127.0.0.1:6379[1]> set11
OK
127.0.0.1:6379[1]> flushdb (--> 清除当前database,再次使用info命令,会发现已经没有这个数据库)
OK
127.0.0.1:6379[1]> flushall (--> 清除所有database)
OK
127.0.0.1:6379> dbsize (--> 当前db的数量)
(integer) 0127.0.0.1:6379> setaa
OK
127.0.0.1:6379> set b b
OK
127.0.0.1:6379> keys *
1) "a"2) "b"127.0.0.1:6379> dbsize
(integer) 2127.0.0.1:6379> save (--> 人工手动保存)
OK
127.0.0.1:6379> quit (--> 退出当前redis客户端连接)
Redis 常用键命令演示+讲解
able@localhost:/Documents/Java/Tools/Redis/redis-2.8.0/src $ ./redis-cli
127.0.0.1:6379> set test test (--> 新增key)
OK
127.0.0.1:6379> keys * (--> 查询)1) "test"2) "a"3) "b"127.0.0.1:6379> del test (--> 删除键值)
(integer) 1 (--> 1:表示成功)127.0.0.1:6379> del xxx
(integer) 0 (--> 0:表示失败)127.0.0.1:6379> keys * (--> 查询所有键值)1) "a"2) "b"## ------------------------------邪恶分割线--------------------------------127.0.0.1:6379> exists a (--> 判断是否存在)
(integer) 1 (--> 1:表示存在)127.0.0.1:6379> exists m
(integer) 0 (--> 0:表示不存在)127.0.0.1:6379> ttl a (--> 查看这个key 的剩余生存时间,单位为秒 - time to live)
(integer) -1 (--> -1:负1表示这个key 是没有过期时间的)127.0.0.1:6379> expire a10 (设置key的过期时间/秒,单点登录session有效期可以使用)
(integer) 1127.0.0.1:6379> ttl a (--> 查看剩余生存时间,从上面设置成共就开始倒计时)
(integer) 2 (--> 剩余的生存时间 2秒)
......
127.0.0.1:6379> ttl a
(integer) -2 (--> -2:负2表示这个key不存在)## ------------------------------邪恶分割线--------------------------------127.0.0.1:6379> type b (--> type:查看key的类型)string (--> 字符串)127.0.0.1:6379> hset hash name tom (--> 设置一个key为hash,hash=tom)
(integer) 1 (--> 1:表示成功)127.0.0.1:6379> type hash (--> 查看类型)
hash (--> 可以看到返回的是Hash)127.0.0.1:6379> randomkey (--> 随机生成key)"hash"127.0.0.1:6379> keys *
1) "hash"2) "b"127.0.0.1:6379> setaa (生成一个key,a=a)
OK
127.0.0.1:6379> set c c (生成一个key,c=c)
OK
127.0.0.1:6379> keys *
1) "a"2) "hash"3) "b"4) "c"127.0.0.1:6379> renamea d (--> 重命名)
OK
127.0.0.1:6379> keys *
1) "b" (--> 很明显已经重命名成功,a -> d)2) "d"3) "hash"4) "c"127.0.0.1:6379> get d (--> 验证一下,获取看到 d = a,说明对的)"a"127.0.0.1:6379> set d d (--> 将d的值设置为d,redis会直接覆盖不会校验是否已存在)
OK
127.0.0.1:6379> get d (--> 查看)"d"127.0.0.1:6379> rename b c (--> 重命名b改为c,c因为这里key已经存在,会直接覆盖)
OK (--> OK:表示成功)127.0.0.1:6379> get c (--> 查看)"b"127.0.0.1:6379> keys *
1) "d"2) "hash"3) "c"127.0.0.1:6379> setaa
OK
127.0.0.1:6379> set b b
OK
127.0.0.1:6379> set c c
OK
127.0.0.1:6379> set d d (--> 将abcd重新赋值为与键值相同)
OK
127.0.0.1:6379> keys *
1) "b"2) "a"3) "d"4) "hash"5) "c"127.0.0.1:6379> renamenx a b (--> nx结尾的命令,一般都有逻辑判断,这里是重命名)
(integer) 0 (--> 0:表示失败!从上面rename可以看到OK才表示成功)
Redis数据结构:String字符串
127.0.0.1:6379> flushall (--> 学习开始直接清空)
OK
127.0.0.1:6379> keys *
(empty list orset)
127.0.0.1:6379>
127.0.0.1:6379> setaa
OK
127.0.0.1:6379> set b b
OK
127.0.0.1:6379> setex c 100 c (--> setex设置c键,并设置有效期100秒)
OK
127.0.0.1:6379> keys *
1) "a"2) "b"3) "c"127.0.0.1:6379> ttl c (--> 查看这个key 的剩余生存时间,单位为秒)
(integer) 95127.0.0.1:6379> psetex d 10000 d (--> psetex设置d键,并设置有效期10000毫秒,注意单位!)
OK
127.0.0.1:6379> ttl d
(integer) 8127.0.0.1:6379> ttl d
(integer) 4127.0.0.1:6379> get xx (--> 获取一个没有的键xx,会返回nil)
(nil) (--> 不存在)127.0.0.1:6379> setword wordword
OK
127.0.0.1:6379> getword"wordword"127.0.0.1:6379> getrange word02 (--> 获取word键的 0~2个元素,注意是闭合区间)"wor"127.0.0.1:6379> getrange word35"dwo"127.0.0.1:6379> geta (--> 获取a的键值)"a"127.0.0.1:6379> getset a aa (--> getset:将a键的值设置为aa,并返回a键的原始值,这个命令很有用!!)"a"127.0.0.1:6379> geta (--> 重新获取,验证一下)"aa"127.0.0.1:6379> mset a1 a1 b1 b1 c1 c1 (--> mset同时设置一个或多个键值)
OK
127.0.0.1:6379> keys *
1) "b1"2) "a1"3) "b"4) "word"5) "a"6) "c1"7) "yyy"127.0.0.1:6379> mget a1 b1 c1 worda b (--> mget同时获取一个或多个键值)1) "a1"2) "b1"3) "c1"4) "wordword"5) "aa"6) "b"127.0.0.1:6379> keys *
1) "b1"2) "a1"3) "b"4) "word"5) "a"6) "c1"7) "yyy"127.0.0.1:6379> geta"aa"127.0.0.1:6379> setnx a newavalue (--> 设置a键的值,因为a键已经存在)
(integer) 0 (--> 0:表示失败)127.0.0.1:6379> setnx newvalue newvalue (--> 设置newvalue键)
(integer) 1 (--> 1:表示成功)127.0.0.1:6379> strlen word (--> 查看字符串的长度)
(integer) 8127.0.0.1:6379> msetnx q q w w (--> msetnx:批量设置1个或多个键,注意是不存在的,否则会失败!)
(integer) 1127.0.0.1:6379> set11
OK
127.0.0.1:6379> get1"1"127.0.0.1:6379> incr 1 (--> 值加1,注意值必须是数字,否则会失败!)
(integer) 2127.0.0.1:6379> incr 1
(integer) 3127.0.0.1:6379> get1"3"127.0.0.1:6379> geta"aa"127.0.0.1:6379> incr a (--> 因为a键的值不是数字,所以这里做运算会失败!!)
(error) ERR value is notanintegeror out of range
127.0.0.1:6379> incrby 1100 (--> incrby:增量,每次为1的键值加100)
(integer) 103127.0.0.1:6379> incrby 1100
(integer) 203127.0.0.1:6379> get1"203"127.0.0.1:6379> decr 1 (--> 相应的删除)
(integer) 202127.0.0.1:6379> decrby 1100 (--> 增量删除)
(integer) 102127.0.0.1:6379> append 1 appendstr (--> 拼接字符串,直接追加到末尾,相信大家不会陌生)
(integer) 10127.0.0.1:6379> get1 (--> 获取验证)"1appendstr"