RedisKey基本命令
set name daq设置keykeys *查看所有的keyget name获取到keyEXISTS name判断当前的key是否存在move name 1移除当前的keyEXPIRE name 10设置key的过期时间,单位是秒ttl name查看当前key的剩余时间type name查看当前key的一个类型
String字符串
APPEND key1 "hello"追加字符串,如果当前key不存在,就相当于setkeySTRLEN key1获取字符串的长度set views 0初始浏览量为0incr views自增1 浏览量变为1decr views自减1 浏览量-1INCRBY views 10可以设置步长,指定增量GETRANGE key1 0 3截取字符串 [0,3]GETRANGE key1 0 -1获取全部的字符串和 get key是一样的SETRANGE key2 1 xx替换指定位置开始的字符串!setex(set with expire)设置过期时间setnx(set if not exist) 不存在设置(在分布式锁中会常常使用!)mset k1 v1 k2 v2 k3 v3同时设置多个值mget k1 k2 k3同时获取多个值msetnx k1 v1 k4 v4msetnx 是一个原子性的操作,要么一起成功,要么一起失败- 对象
set user:1 {name:zhangsan,age:3}设置一个user:1对象值为 json字符来保存一个对象
这里的key是一个巧妙的设计:user:{id}:{filed} getset db redis如果不存在值,则返回nilgetset db mongodb如果存在值,返回原来的值,并设置新的值。- String类似的使用场景:
- 计数器
- 统计多单位的数量
- 粉丝数
- 对象缓存存储
List列表
- 在
redis里面,可以把list当成,栈、队列、阻塞队列! - 所有的命令都是
L开头的 LPUSH list one将一个值或者多个值,插入到列表头部(左)Rpush list righr将一个值或者多个值,插入到列表位部(右)LRANGE list 0-1获取list中值LRANGE list 0 1通过区间获取具体的值Lpop list移除list的第一个元素Rpop list移除list的最后一个元素lindex list 1通过下标获得 list 中的某一个值Llen list返回列表的长度lrem list 1 one移除list集合中指定个数的value,精确匹配- 总结
- 他实际上是一个链表,before Node after , left,right 都可以插入值
- 如果key 不存在,创建新的链表
- 如果key存在,新增内容
- 如果移除了所有值,空链表,也代表不存在
- 在两边插入或者改动值,效率最高,中间元素,相对来说效率会低一点
Set集合
- set中的值是不能重读的!
sadd myset "hello"set集合中添加元素SMEMBERS myset查看指定set的所有值SISMEMBER myset hello判断某一个值是不是在set集合中scard myset获取set集合中的内容元素个数srem myset hello移除set集合中的指定元素- set无序不重复集合。抽随机!
SRANDMEMBER myset随机抽选出一个元素SRANDMEMBER myset 2随机抽选出指定个数的元素spop myset随机删除一些set集合中的元素smove myset myset2 "kuangshen"将一个指定的值,移动到另外一个set集合SINTER key1 key2取交集,共同好友就可以这样实现
Hash哈希
- Map集合, 本质和String类型没有太大区别,还是一个简单的key-vlaue!
hset myhash field1 kuangshenset一个具体 key-vlauehget myhash field1获取一个字段值hmset myhash field1 hello field2 worldset多个 key-vlauehmget myhash field1 field2获取多个字段值hgetall myhash获取全部的数据hdel myhash field1删除hash指定key字段!对应的value值也就消失了hlen myhash获取hash表的字段数量HEXISTS myhash field1判断hash中指定字段是否存在hkeys myhash只获得所有fieldhvals myhash只获得所有valuehset myhash field3 5指定增量hsetnx myhash field4 hello如果不存在 则可以设置hsetnx myhash field4 world如果存在则不能设置- hash变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息, hash 更适合于对象的存储,String更加适合字符串存储!
1256

被折叠的 条评论
为什么被折叠?



