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

[经验分享] redis学习第一天

[复制链接]

尚未签到

发表于 2018-11-6 10:21:26 | 显示全部楼层 |阅读模式
1,安装  

  
[root@localhost ~]# tar zxvf redis-3.0.2.tar.gz
  
[root@localhost ~]# mv redis-3.0.2 /usr/local/redis
  
[root@localhost ~]# cd /usr/local/redis
  
[root@localhost redis]#make &&make install
  
over
  make 出错
  zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录
  使用 make MALLOC=libc && make install
  #官方网站提示这样启动服务
  src/redis-server
  #但是出现了上面的问题后,请用下面的方式启动redis服务
  nohup src/redis-server redis.conf &
  关闭redis
  redis-cli shutdown
  2.
  key相关指令
  exists key key            存在返回1,不存在返回0.
  del key1 keyn             删除指定key,返回删除成功的数量。
  type key                  查看key的数据类型
  randomkey                 当前库随机返回一个key
  rename oldkey newkey      重命名一个key,如果newkey是存在的名字,那么newkey将被删除。
  renamenx                  同上,如果存在将会改名失败,返回0.
  expire key seconds        为key指定过期时间 单位是秒 0
  ttl key                   返回key剩余过期时间,-1表示未设置 -2表示已经过期
  select db-index           选择数据库 等于use datebases,默认连接的是0,默认有16个.
  move key db-index         移动key到指定数据库,返回1表示成功,0表示失败.
  3.
  redis的value
  string hash list set sorted set 5种
  3.1 string类型
  set key                             设置key或者更新key
  setnx key                           创建key,如果已经存在,则返回0.
  get key                             获取key的value
  getset                              key value 获取key的值,然后更新key的值
  mget key1 keyn                      批量获取
  mset key1 value1 key2 value2        批量设置,如果有错误,将不做任何操作。
  msetnx key1 value1 key2 value2      同上 但是如果有存在的key,将不做任何操作。
  ince key                            对key做+1操作,如果不是int类型,将会出错,如果key不存在,将返回1.
  decy key                            对key做-1操作,其他同上。
  incrby key integer                  对key加上指定数值,如果key不存在将会创建
  decrby key integer                  对key减去指定数值,其他同上,可以通过负值,达到incrby的效果,上同。
  3.2
  hash类型

  hset key field value             设置,如果不存在则创建,例如: hset>
  hget key field                   获取field的key值 例如: hget>
  hmget key field1 field2          批量获取,例如: hmget>  hmset key field1 value1 ...      批量设置 例如: hmset age xiaoming 18 daming 19
  hincrby  key field integer       将key增加integer,成功返回新的值 可以为负数。
  hexists key field                检测field和key是否存在,存在返回1 否则返回0
  hdel key field                   删除指定key,当field没有key的时候 field不存在。
  hlen key                         返回指定key的field数量
  hkeys key                        返回key的所有field
  hvals key                        返回key的所有value
  hgetall key                      返回key的所有filed和value
  3.3
  list类型 原地址 http://www.cnblogs.com/stephen-liu74/archive/2012/02/14/2351859.html
命令原型时间复杂度命令描述返回值LPUSH key value [value ...] O(1)在指定Key所关联的List Value的头部插入参数中给出的所有Values。如果该Key不存在,该命令将在插入之前创建一个与该Key关联的空链表,之后再将数据从链表的头部插入。如果该键的Value不是链表类型,该命令将返回相关的错误信息。 插入后链表中元素的数量。LPUSHX key value O(1)  仅有当参数中指定的Key存在时,该命令才会在其所关联的List Value的头部插入参数中给出的Value,否则将不会有任何操作发生。插入后链表中元素的数量。 LRANGE key start stop O(S+N)时间复杂度中的S为start参数表示的偏移量,N表示元素的数量。该命令的参数start和end都是0-based。即0表示链表头部(leftmost)的第一个元素。其中start的值也可以为负值,-1将表示链表中的最后一个元素,即尾部元素,-2表示倒数第二个并以此类推。该命令在获取元素时,start和end位置上的元素也会被取出。如果start的值大于链表中元素的数量,空链表将会被返回。如果end的值大于元素的数量,该命令则获取从start(包括start)开始,链表中剩余的所有元素。返回指定范围内元素的列表。LPOP key O(1) 返回并弹出指定Key关联的链表中的第一个元素,即头部元素,。如果该Key不存,返回nil。链表头部的元素。LLEN keyO(1) 返回指定Key关联的链表中元素的数量,如果该Key不存在,则返回0。如果与该Key关联的Value的类型不是链表,则返回相关的错误信息。链表中元素的数量。LREM key count value O(N) 时间复杂度中N表示链表中元素的数量。在指定Key关联的链表中,删除前count个值等于value的元素。如果count大于0,从头向尾遍历并删除,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素。如果指定的Key不存在,则直接返回0。返回被删除的元素数量。LSET key index value O(N) 时间复杂度中N表示链表中元素的数量。但是设定头部或尾部的元素时,其时间复杂度为O(1)。设定链表中指定位置的值为新值,其中0表示第一个元素,即头部元素,-1表示尾部元素。如果索引值Index超出了链表中元素的数量范围,该命令将返回相关的错误信息。LINDEX key index O(N) 时间复杂度中N表示在找到该元素时需要遍历的元素数量。对于头部或尾部元素,其时间复杂度为O(1)。该命令将返回链表中指定位置(index)的元素,index是0-based,表示头部元素,如果index为-1,表示尾部元素。如果与该Key关联的不是链表,该命令将返回相关的错误信息。返回请求的元素,如果index超出范围,则返回nil。LTRIM key start stop O(N) N表示被删除的元素数量。该命令将仅保留指定范围内的元素,从而保证链接中的元素数量相对恒定。start和stop参数都是0-based,0表示头部元素。和其他命令一样,start和stop也可以为负值,-1表示尾部元素。如果start大于链表的尾部,或start大于stop,该命令不错报错,而是返回一个空的链表,与此同时该Key也将被删除。如果stop大于元素的数量,则保留从start开始剩余的所有元素。LINSERT key BEFORE|AFTER pivot value O(N) 时间复杂度中N表示在找到该元素pivot之前需要遍历的元素数量。这样意味着如果pivot位于链表的头部或尾部时,该命令的时间复杂度为O(1)。该命令的功能是在pivot元素的前面或后面插入参数中的元素value。如果Key不存在,该命令将不执行任何操作。如果与Key关联的Value类型不是链表,相关的错误信息将被返回。成功插入后链表中元素的数量,如果没有找到pivot,返回-1,如果key不存在,返回0。RPUSH key value [value ...] O(1) 在指定Key所关联的List Value的尾部插入参数中给出的所有Values。如果该Key不存在,该命令将在插入之前创建一个与该Key关联的空链表,之后再将数据从链表的尾部插入。如果该键的Value不是链表类型,该命令将返回相关的错误信息。 插入后链表中元素的数量。 RPUSHX key value O(1) 仅有当参数中指定的Key存在时,该命令才会在其所关联的List Value的尾部插入参数中给出的Value,否则将不会有任何操作发生。 插入后链表中元素的数量。 RPOP key O(1) 返回并弹出指定Key关联的链表中的最后一个元素,即尾部元素,。如果该Key不存,返回nil。 链表尾部的元素。 RPOPLPUSH source destination O(1) 原子性的从与source键关联的链表尾部弹出一个元素,同时再将弹出的元素插入到与destination键关联的链表的头部。如果source键不存在,该命令将返回nil,同时不再做任何其它的操作了。如果source和destination是同一个键,则相当于原子性的将其关联链表中的尾部元素移到该链表的头部。返回弹出和插入的元素。  第一天over。



运维网声明 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-631420-1-1.html 上篇帖子: Redis 2.8 架构分析 下篇帖子: Redis监控技巧总结
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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