设为首页 收藏本站
查看: 779|回复: 0

[经验分享] redis基础篇

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-1 13:30:17 | 显示全部楼层 |阅读模式

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>incrby  key6  5   //对key6自增5,

redis 127.0.0.1:6379>incrby key6  -4     //对key6自减4

redis 127.0.0.1:6379>decr key6  1   //对key6自减1

redis 127.0.0.1:6379>decr  key6  -2   //对key6自增2

redis 127.0.0.1:6379>append  name  net   //给name的值后面拼加字符串net

redis 127.0.0.1:6379>strlen   name      //查看name的值的长度



二、hash数据类型,是字段field和值的映射表,占用内存少

redis 127.0.0.1:6379>hset  myhash  field1   hello    //myhash是哈希表

redis 127.0.0.1:6379>hget  myhash  field1     //获取myhash表的field1的值

redis 127.0.0.1:6379>hsetnx  myhash  hello   //判断是否存在,存在返回0,不存在则赋值

redis 127.0.0.1:6379>hmget  myhash  field1  hello  filed2  word    //批量赋值

redis 127.0.0.1:6379>hmget   myhash   filed1   filed2   //批量获取值

redis 127.0.0.1:6379>hincrby user:003  age   5    //对user:003表的age自增5

redis 127.0.0.1:6379>hexists   user:003  age    //会判断age是否存在,存在返回0,否则返回1

redis 127.0.0.1:6379>hlen  user:001     //返回哈希表的键值数量

redis 127.0.0.1:6379>hdel  myhash  age   //对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>lpush  mylist  “hello”     //

redis 127.0.0.1:6379>lrange  mylist  0  -1   //从头部第一个取到尾部

redis 127.0.0.1:6379>rpush   mylist  “be”    //从尾部加入一个元素

redis 127.0.0.1:6379>linsert   mylist  before “one” “two” //向one元素前面加入一个元素,在头部为前。

127.0.0.1:6379> lpush  list2  one//向list2中插入值one

(integer) 1

127.0.0.1:6379> lpush  list2  two

(integer) 2

127.0.0.1:6379> lpush  list2  three

(integer) 3

127.0.0.1:6379> lrange list2  0  -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> rpoplpush  list1  list2//将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> keys  my*     //返回my开头的所有键

127.0.0.1:6379> exists  name    //查看name键是否存在,存在返回1,否则返回0

127.0.0.1:6379> del  age       //删除age的键

127.0.0.1:6379> expire   age   10         //设置过期

127.0.0.1:6379> persist   age        //取消过期设置

127.0.0.1:6379> move  age  1     //将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> rename  age  age.new    给键重新命名

127.0.0.1:6379> type  age       返回值的数据类型,(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> config  get  *    //返回当前所有配置项

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、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348876-1-1.html 上篇帖子: Redis的下载、安装 下篇帖子: Redis在windows下安装过程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表