基本操作命令
127.0.0.1:6379> set name fx #设置key值
127.0.0.1:6379> get name #获取key值
127.0.0.1:6379> select 1 #切换数据库
127.0.0.1:6379[1]> dbsize # 查看db数据库大小
127.0.0.1:6379[1]> keys * #查看数据库所有的key
127.0.0.1:6379[1]> flushdb #清空当前库
127.0.0.1:6379> flushall #清空所有库的内容
127.0.0.1:6379> exists name # 判断当前的key是否存在
127.0.0.1:6379> del name #删除指定索引的值
127.0.0.1:6379> move name 1 # 移除当前的key
127.0.0.1:6379> expire name 5 # 设置key的过期时间,单位是秒
127.0.0.1:6379> ttl name #查看过期时间还剩多少秒!!!
127.0.0.1:6379> type name # 查看当前key的一个类型
string
应用
1.计数器
2.统计多单位的数量
3.粉丝数
4.对象缓存存储
127.0.0.1:6379> append name fx # 追加字符串
127.0.0.1:6379> strlen name #获取字符串长度
127.0.0.1:6379> incr woshifanlan #自增+1(默认步长是1)
127.0.0.1:6379> decr woshifanlan #自减-1
127.0.0.1:6379> incrby woshifanlan 5 #设置步长i+=5,指定增量
127.0.0.1:6379> setrange name 0 4 # 替换指定索引位置的字符串
127.0.0.1:6379> getrange name 0 4 #截取字符串name[0,4]
127.0.0.1:6379> getrange name 0 -1 #获取全部的字符串 和 get key
127.0.0.1:6379> setex name 30 woshifanlan #设置key值过期时间,30秒后过期
127.0.0.1:6379> ttl name #查看过期时间还剩多少秒!!!!
127.0.0.1:6379> setnx key fanlan #设置key,不存在创建,存在,创建失败
127.0.0.1:6379> mset name fanlan name1 woshifanlan # 同时设置多个值
127.0.0.1:6379> mget name name1 # 同时获取多个值
127.0.0.1:6379> msetnx name fanlan name1 woshifanlan # msetnx 是一个原子性的操作,要么一起成功,要么一起失败
127.0.0.1:6379> getset name woshifanlan #如果key存在,获取原来的值,并设置新值
List(列表)
应用
消息排队!
127.0.0.1:6379> lpush name fanlan # 将一个值或者多个值,插入到列表头部 (左)
127.0.0.1:6379> rpush name zfx #将一个值或者多个值,插入到列表右边
127.0.0.1:6379>lrange name 0 -1 #通过区间获取list列表中所有值
127.0.0.1:6379>lrange name 0 2 #通过区间获取list列表中值
127.0.0.1:6379>lpop name #移除list列表左边值
127.0.0.1:6379> rpop name #移除list列表右边值
127.0.0.1:6379> lindex name 0 #通过下标(0)获取list值
127.0.0.1:6379> llen name #获取list列表的长度
127.0.0.1:6379> lrem key 2 one #移除list列表中的值[可选移除相同的值]
127.0.0.1:6379> ltrim key 0 1 #截取list列表中的值,截掉指定范围,剩余列表中的值
127.0.0.1:6379> rpoplpush key key1 # 移除列表中最后一个元素,并将移除元素添加到新列表中
127.0.0.1:6379> lset key 0 fx #更新list列表指定下标的存在时,会替换
127.0.0.1:6379> linsert key before fanlan woshifanlan #将我是泛滥插入到fanlan前面
127.0.0.1:6379> linsert key after fanlan zfx #将我是泛滥插入到fanlan后面
Set(集合)
应用:
微博,A用户将所有关注的人放在一个set集合中!将它的粉丝也放在一个集合中! 共同关注,共同爱好,二度好友,推荐好友!(六度分割理论)
127.0.0.1:6379> sadd name fanlan #向集合中添加元素
127.0.0.1:6379> smembers name #查看集合当中的元素
127.0.0.1:6379> sismember name fanlan #判断集合中是否有这个元素 1 表示 有
127.0.0.1:6379> scard name #获取集合当中元素的个数len的作用一样
127.0.0.1:6379> srem name fanlan #移除集合当中指定的值
127.0.0.1:6379> srandmember name # 随机抽选出一个元素
127.0.0.1:6379> spop name #随机删除集合当中的值
127.0.0.1:6379> smove name name1 fx " #将一个指定的值,移动到另外一个set集当中
127.0.0.1:6379> sdiff key1 ket1 #key1-ket1的差集就是a
127.0.0.1:6379> sinter key1 ket1 #交集
127.0.0.1:6379> sunion key1 ket1 #并集
Hash(哈希)-》key-Map:(key-(key-map))
应用
用户信息之类的,经常变动的信息! hash 更适合于对象的 存储,String更加适合字符串存储!
127.0.0.1:6379> hset name fanlan fx #设置hset值
127.0.0.1:6379> hget name fanlan #获取hset值
127.0.0.1:6379> hmset name fanlan zfx fanlan1 woshifanlan # 设置set多个 key-vlaue
127.0.0.1:6379> hmget name fanlan fanlan1 #获取get多个字段值
127.0.0.1:6379> hgetall name #获取全部数据
127.0.0.1:6379> hdel name fanlan #删除指定key的值
127.0.0.1:6379> hlen name # 获取hash表的字段数量!
127.0.0.1:6379> hexists name fanlan # 判断hash中指定字段是否存在!1存在
127.0.0.1:6379> hkeys name #获取所有的fieid
127.0.0.1:6379> hvals name #获取所有的value
127.0.0.1:6379> hincrby name fanlan4 2 #指定值+2
Zset(有序集合)
set的基础上 set key value ----->zset key score value
应用
set 排序 存储班级成绩表,工资表排序! 普通消息,1, 重要消息 2,带权重进行判断! 排行榜应用实现,取Top N 测试
127.0.0.1:6379> zadd name 1 fanlan #添加一个值
127.0.0.1:6379> zadd name 2 fx 3 woshifanlan #添加多个值
127.0.0.1:6379> zrange name 0 -1 #查看有序集合中区间内的所有值
127.0.0.1:6379> zrangebyscore salary -inf +inf #排序从小到大
127.0.0.1:6379> zrevrange salary 0 -1 #排序 从大到小
127.0.0.1:6379> zrangebyscore salary -inf 3000 withscores #用户工资小3000的用户
127.0.0.1:6379> zrem salary fx #移除zset集合当中指定的值
127.0.0.1:6379> zcard salary #获取zset集合当中的个类似于len
127.0.0.1:6379> zcount number 0 3 #获取zset集合当中指定区间的成员个数