8870188 发表于 2018-11-4 09:36:23

redis基础篇

  redis有五种数据类型,分别是string、hash、list、set、zset
  
  一、string类型:
  redis 127.0.0.1:6379>set name doo//设置一个键值对,键为name,值为doo
  redis 127.0.0.1:6379>get name//获取name的值
  redis 127.0.0.1:6379>set name ya      //再次赋值将被覆盖,一个key对应一个value
  redis 127.0.0.1:6379>setnx name doo   
  //会判断name是否存在,存在返回0,不存在返回1,且写入name=doo这个键值对。
  redis 127.0.0.1:6379>setex haircolor 10 red//指定haircolor的值存在10秒,超过时间则消失
  redis 127.0.0.1:6379>setrange name 6 doo.com
  //对于name这个字符串的第七个位置改为doo.com,如果替换的没有原来的长,则原来结尾部分依然存在,例如:name=abcdefg,setrange name 2 12   则name变为a12defg
  redis 127.0.0.1:6379>mset key1 doo key2 ya   //批量设置键值对
  redis 127.0.0.1:6379>msetnx   //批量判断是否存在,只要有一个存在,则全部设置不成功
  redis 127.0.0.1:6379>getset key 30    //获取key的值,同时重新给key赋值
  redis 127.0.0.1:6379>mget//批量获取值,有空的则返回空
  redis 127.0.0.1:6379>incr key7    //对key7自增1,如果key7不存在,则默认原来为0
  redis 127.0.0.1:6379>incrbykey65   //对key6自增5,
  redis 127.0.0.1:6379>incrby key6-4   //对key6自减4
  redis 127.0.0.1:6379>decr key61   //对key6自减1
  redis 127.0.0.1:6379>decrkey6-2   //对key6自增2
  redis 127.0.0.1:6379>appendnamenet   //给name的值后面拼加字符串net
  redis 127.0.0.1:6379>strlen   name      //查看name的值的长度
  
  
  二、hash数据类型,是字段field和值的映射表,占用内存少
  redis 127.0.0.1:6379>hsetmyhashfield1   hello    //myhash是哈希表
  redis 127.0.0.1:6379>hgetmyhashfield1   //获取myhash表的field1的值
  redis 127.0.0.1:6379>hsetnxmyhashhello   //判断是否存在,存在返回0,不存在则赋值
  redis 127.0.0.1:6379>hmgetmyhashfield1hellofiled2word    //批量赋值
  redis 127.0.0.1:6379>hmget   myhash   filed1   filed2   //批量获取值
  redis 127.0.0.1:6379>hincrby user:003age   5    //对user:003表的age自增5
  redis 127.0.0.1:6379>hexists   user:003age    //会判断age是否存在,存在返回0,否则返回1
  redis 127.0.0.1:6379>hlenuser:001   //返回哈希表的键值数量
  redis 127.0.0.1:6379>hdelmyhashage   //对myhash表的age字段删除,返回1删除成功
  redis 127.0.0.1:6379>hkeys   myhash    //返回myhash表的所有字段,不返回值
  redis 127.0.0.1:6379>hvals   myhash    //返回myhash表的所有值,不返回字段
  redis 127.0.0.1:6379>hgetall   myhash    //返回myhash表的所有键和值
  
  
  三、list数据类型
  redis 127.0.0.1:6379>lpush   mylist   “word”//从头部加入一个元素
  redis 127.0.0.1:6379>lpushmylist“hello”//
  redis 127.0.0.1:6379>lrangemylist0-1   //从头部第一个取到尾部
  redis 127.0.0.1:6379>rpush   mylist“be”//从尾部加入一个元素
  redis 127.0.0.1:6379>linsert   mylistbefore “one”“two”//向one元素前面加入一个元素,在头部为前。
  127.0.0.1:6379> lpushlist2one//向list2中插入值one
  (integer) 1
  127.0.0.1:6379> lpushlist2two
  (integer) 2
  127.0.0.1:6379> lpushlist2three
  (integer) 3
  127.0.0.1:6379> lrange list20-1//输出list2的所有值
  1) "three"
  2) "two"
  3) "one"
  127.0.0.1:6379> lset list2 1 four //将list2 的two改为four插入数据从头部插入,新插入的数据角标为0
  OK
  127.0.0.1:6379> lrange list2 0 -1
  1) "three"
  2) "four"
  3) "one"
  127.0.0.1:6379> lrem list2 3 one//从list2中删除3个和one相同的元素
  (integer) 1
  127.0.0.1:6379> ltrim list2 2 -1//保留第三个到结尾的元素
  OK
  127.0.0.1:6379> rpoplpushlist1list2//将list1的尾部加到list2的头部
  127.0.0.1:6379> lindex list2 0//返回list2第一个位置的值
  127.0.0.1:6379> llen list2//返回list2中元素的个数
  
  
  四、sets 数据类型集合
  127.0.0.1:6379> sadd myset1 hello//向集合myset1中加入hello元素
  (integer) 1
  127.0.0.1:6379> smembers myset1//查看myset1的所有元素
  1) "hello"
  127.0.0.1:6379> sadd myset1 one
  (integer) 1
  127.0.0.1:6379> srem myset1 one//删除myset1的one元素
  (integer) 1
  127.0.0.1:6379> spop myset1//随机从myset1中删除一个元素
  127.0.0.1:6379> sdiff myset1 myset2//返回两个集合的差集,以前面集合为标准,返回前面那个集合中不在集合2的元素
  127.0.0.1:6379> sdiffstore myset4 myset2 myset3//将集合2和3的差距存放于集合4
  127.0.0.1:6379> sinter myset1 myset2//取集合1和集合2 的交集
  127.0.0.1:6379> sinterstore myset3 myset1 myset2//将集合1和集合2 的交集存于集合3
  127.0.0.1:6379> sunion myset1 myset2//取集合1和集合2的并集
  127.0.0.1:6379> sunionstore myset3 myset1 myset2//集合1和集合2的并集存于集合3
  127.0.0.1:6379> smove myset2 myset3 three   //将集合2 的three移到集合7中
  127.0.0.1:6379> scard myset1//返回集合1的元素的个数
  127.0.0.1:6379> sismember myset1 one//测试myset1中是否有one,有则返回1,否则返回0
  127.0.0.1:6379> srandmember myset1//随机返回集合1中的一个元素,不删除
  
  
  
  五、 有序集合zset
  127.0.0.1:6379> zadd myzset1 1 one//增加zset1
  (integer) 1
  127.0.0.1:6379> zadd myzset1 2 two
  (integer) 1
  127.0.0.1:6379> zadd myzset1 3 two
  (integer) 0
  127.0.0.1:6379> zrange myzset1 0 -1//查看有序集合的所有元素
  1) "one"
  2) "two"
  127.0.0.1:6379> zrange myzset1 0 -1 withscores//加withscores可现实元素序号
  1) "one"
  2) "5"
  
  127.0.0.1:6379> zrem myzset1 two//删除集合中的元素
  127.0.0.1:6379> zincrby myzset1 2 one//对one的序列号加2
  127.0.0.1:6379> zincrby myzset1 -2 one       //对one的序列号-2
  127.0.0.1:6379> zrank myzset1 three//返回three的索引值,索引值从0开始,序列号从1开始
  127.0.0.1:6379> zrank myzset1 three
  (integer) 2
  127.0.0.1:6379> zrevrank myzset1 three//先降序,再找索引
  (integer) 0
  
  127.0.0.1:6379> zrange myzset1 0 -1 withscores//查看元素以及现实序列号
  1) "one"
  2) "1"
  3) "two"
  4) "2"
  5) "three"
  6) "3"
  127.0.0.1:6379> zrevrange myzset1 0 -1 withscores//先降序,再查看元素以及序列号
  1) "three"
  2) "3"
  3) "two"
  4) "2"
  5) "one"
  6) "1"
  
  127.0.0.1:6379> zrangebyscore myzset1 2 3 withscores//找序列号是2和3的元素
  1) "two"
  2) "2"
  3) "three"
  4) "3"
  
  127.0.0.1:6379> zcount myzset1 2 4//返回序列从2 到4的元素个数
  127.0.0.1:6379> zcard myzset1 //返回有序集合元素个数
  
  127.0.0.1:6379> zrange myzset1 0 -1//先看索引
  127.0.0.1:6379> zremrangebyrank myzset1 0 1//删除索引值从0到1的元素
  127.0.0.1:6379> zremrangebyscore myzset1 2 5//删除序列号是2到5的元素
  
  
  
  
  元素过期:
  127.0.0.1:6379> set age 20//设置age的值为20
  OK
  127.0.0.1:6379> get age          //获取age的值
  "20"
  127.0.0.1:6379> expire age 20//设置age的值存在20秒
  (integer) 1
  127.0.0.1:6379> ttl age//获取剩余存在时间,秒
  (integer) 16
  
  
  
  
  键值相关命令:
  127.0.0.1:6379> keys*       //返回所有的键
  127.0.0.1:6379> keysmy*   //返回my开头的所有键
  127.0.0.1:6379> existsname    //查看name键是否存在,存在返回1,否则返回0
  127.0.0.1:6379> delage       //删除age的键
  127.0.0.1:6379> expire   age   10         //设置过期
  127.0.0.1:6379> persist   age      //取消过期设置
  127.0.0.1:6379> moveage1   //将age这个键移动到1数据库
  一共16个数据库,从0-15    开始默认是0
  127.0.0.1:6379> select 0      选择进入0号数据库
  127.0.0.1:6379> randomkey   随机返回一个key
  127.0.0.1:6379> renameageage.new    给键重新命名
  127.0.0.1:6379> typeage       返回值的数据类型,(string、zset、list等)
  
  
  
  服务器相关命令:
  127.0.0.1:6379> ping       测试与服务器连接正常,正常返回pong
  127.0.0.1:6379> echo       类似于回显
  127.0.0.1:6379> select 2   选择2号数据库
  127.0.0.1:6379> quit    //退出,或者用exit
  127.0.0.1:6379> dbsize   //返回当前库键的数目
  127.0.0.1:6379> info       //获取redis的信息
  127.0.0.1:6379> configget*    //返回当前所有配置项
  127.0.0.1:6379> CONFIG GET timeout//返回timeout配置项的参数值
  1) "timeout"
  2) "0"
  127.0.0.1:6379> flushdb       //删除当前库中所有的key
  127.0.0.1:6379> flushall       //删除所有库的所有key,不管在哪个库下都是
  

页: [1]
查看完整版本: redis基础篇