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

[经验分享] 命令行下 初识 redis 入门教程

[复制链接]

尚未签到

发表于 2015-7-21 08:59:05 | 显示全部楼层 |阅读模式
  1. redis-cli 命令行进入redis
  set,get,
  setex,给键值设置过期时间 setex name 10 DOG //设置name键 为 DOG 10秒后过期。
  setnx,判断值是否存在,如果存在就不更新键值。如果不存在,则赋值。 (nx :not exist)
  getset,设置一个新值,并返回key的旧值。
  mset,批量设置键值。
  msetnx,
  mget,
  setrange,替换值串部分。 客户端测试:



redis 127.0.0.1:6379> set email test@gmail.com
OK
redis 127.0.0.1:6379> setrange email 5 qq.com
(integer) 14
redis 127.0.0.1:6379> get email
"test@qq.comcom"
redis 127.0.0.1:6379> set email test@qq.com
OK
redis 127.0.0.1:6379> get email
"test@qq.com"
redis 127.0.0.1:6379> setrange email 5 gmail.com
(integer) 14
redis 127.0.0.1:6379> get email
"test@gmail.com"//简而言之,替换部分如果未超过原来字符串,则原本未被替换的字符串被保留下来。  如果被替换部分长度超过原来,则显而易见。
  getrange,



redis 127.0.0.1:6379> set key1 123456789
OK
redis 127.0.0.1:6379> getrange key1 0 3
"1234"
  incr,自增1,  如果键不存在,第一次自增相当于赋值  (decr



redis 127.0.0.1:6379> set key1 12
OK
redis 127.0.0.1:6379> incr key1
(integer) 13
  incrby,增加 或 减少  (decrby



redis 127.0.0.1:6379> set key1 5
OK
redis 127.0.0.1:6379> incrby key1 -3
(integer) 2
  append, 值后 拼接一个新字符串。 返回新串长度
  strlen,
  
  2. -------------------h : hash
  这里截图2个, 说明普通键值对   与  hash key->value区别:  
DSC0000.png DSC0001.png
  hset,hget,hdel,hmset,hmget, hincr, hincrby,
  hlen,返回hash  field的个数
  hexists,



redis 127.0.0.1:6379> hexists user:001 name
(integer) 1
  hkeys,返回hash表  所有   field
  hvals,返回hash表  所有   
  hgetall,返回hash表  所有  field
  
   3.list
  -------------------------------- 头
  |                |
  |                |            
  |                |
  |                |
  --------------------------------尾
  lpush:从list开始入数据
  rpush:从list开始入数据



redis 127.0.0.1:6379> lpush list1 wo
(integer) 1
redis 127.0.0.1:6379> lpush list1 cao
(integer) 2
redis 127.0.0.1:6379> lpush list1 haha
(integer) 3
redis 127.0.0.1:6379> lrange list1 0 -1//从头  = >  尾  依次是.
1) "haha"//头
2) "cao"
3) "wo"//尾
redis 127.0.0.1:6379> rpush list1 wo
(integer) 1
redis 127.0.0.1:6379> rpush list1 cao
(integer) 2
redis 127.0.0.1:6379> rpush list1 haha
(integer) 3
redis 127.0.0.1:6379> lrange list1 0 -1
1) "wo"
2) "cao"
3) "haha"
  linsert: 在堆栈数据中间   插入一个数据, 实例:在1,3之间插入2



redis 127.0.0.1:6379> del list1
(integer) 1
redis 127.0.0.1:6379> lpush list1 1
(integer) 1
redis 127.0.0.1:6379> lpush list1 3
(integer) 2
redis 127.0.0.1:6379> linsert list1 before 1 2
(integer) 3
redis 127.0.0.1:6379> lrange list1 0 -1
1) "3"
2) "2"
3) "1"
  lset,对指定下标元素  进行赋值
  lrem,删除相同对应value元素.  lrem list1 2 one   //删除list1中  2个  one 元素
  ltrim,保留指定key范围内的数据.



redis 127.0.0.1:6379> lpush list1 one
(integer) 1
redis 127.0.0.1:6379> lpush list1 two
(integer) 2
redis 127.0.0.1:6379> lpush list1 three
(integer) 3
redis 127.0.0.1:6379> ltrim list1 1 -1
OK
redis 127.0.0.1:6379> lrange list1 0 -1
1) "two"
2) "one"
  lpop:从头 弹出一个 元素.
  rpop:从尾 弹出一个 元素.
  rpoplpush list1 list2: 从list1尾部弹出元素 A  压入到 list2的头部
  lindex : 返回list中 小标为 index的 元素值。  // lindex list1 0.
  llen:
  
  4.sets集合:无序集合   无重复元素
  sadd: sadd set1 hello //    sadd set1 world  //sadd 不可以添加相同元素。 添加成功返回1
  smembers:查看集合所有成员
  srem: 删除成员
  spop:随机弹出一个元素
  sdiff:返回所有给定key与第一个key的差集



redis 127.0.0.1:6379> sadd set1 one
(integer) 1
redis 127.0.0.1:6379> sadd set1 two
(integer) 1
redis 127.0.0.1:6379> sadd set2 one
(integer) 1
redis 127.0.0.1:6379> sadd set2 three
(integer) 1
redis 127.0.0.1:6379> sdiff set1 set2
1) "two"
  sdiffstore:将差集返回的 集合    存储到  另一个集合中。   sdiffstore set3 set1 set2 //返回set3的差集


DSC0002.gif DSC0003.gif


redis> SMEMBERS peter's_movies
1) "bet man"
2) "start war"
3) "2012"
redis> SMEMBERS joe's_movies
1) "hi, lady"
2) "Fast Five"
3) "2012"
redis> SDIFF peter's_movies joe's_movies
1) "bet man"
2) "start war"
View Code  
  sinter:集合间取交集
  sinterstore:
  sunion: 返回  并集
  sunionstore:
  smove:从第一个集合从  移除  指定key  并且  添加到  第二个集合中



redis 127.0.0.1:6379> smove set1 set2 two
(integer) 1
redis 127.0.0.1:6379> smembers set2
1) "three"
2) "two"
3) "one"
  scard:查看集合元素个数
  sismember: 判断 某元素 是否为  集合 当中  元素
  srandmember:从集合中随机返回一个元素
  
  5.sorted sets有序集合 zset
  zadd:
  zrange:
  zrem:



redis 127.0.0.1:6379> zadd zset1 1 h
(integer) 1
redis 127.0.0.1:6379> zadd zset1 2 i
(integer) 1
redis 127.0.0.1:6379> zadd zset1 3 i//更新序号
(integer) 0
redis 127.0.0.1:6379> zrange zset1 0 -1
1) "h"
2) "i"
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "h"
2) "1"
3) "i"
4) "3"
redis 127.0.0.1:6379> zrem zset1 i
(integer) 1
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "h"
2) "1"
  zincrby:集合中添加某元素,如果此元素不存在则直接添加进去。 如果存在,则序号自增incr,值不变。



redis 127.0.0.1:6379> zincrby zset1 2 h
"3"
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "h"
2) "3"
redis 127.0.0.1:6379> zincrby zset1 1 i
"1"
redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "i"
2) "1"
3) "h"
4) "3"
  zrank:返回集合 下标号



redis 127.0.0.1:6379> zrange zset1 0 -1
1) "i"//第0个元素
2) "h"//第1个元素
redis 127.0.0.1:6379> zrank zset1 i
(integer) 0
redis 127.0.0.1:6379> zrank zset1 h
(integer) 1
  zrevrank:返回集合下标。  逆序排序后  得到指定元素的下标。   与zrank相反
  zrevrange:降序排序
  zrangebyscore:给定score范围内的元素
  zscount:返回给定score区间内   元素个数



redis 127.0.0.1:6379> zrange zset1 0 -1 withscores
1) "i"
2) "1"
3) "twooo"
4) "2"
5) "h"
6) "3"
7) "teno"
8) "6"
redis 127.0.0.1:6379> zrangebyscore zset1 2 9
1) "twooo"
2) "h"
3) "teno"
redis 127.0.0.1:6379> zcount zset1 2 6// 区间是[]    包括左右两边
(integer) 3
  zcard: 返回集合中所有元素个数

zremrangebyrank : 删除指定 索引 区间内的  元素


redis 127.0.0.1:6379> zrange zset1 0 -1
1) "i"
2) "twooo"
3) "h"
4) "teno"
redis 127.0.0.1:6379> zremrangebyrank zset1 0 1
(integer) 2
redis 127.0.0.1:6379> zrange zset1 0 -1
1) "h"
2) "teno"
  zremrangebyscore: 删除指定 score 区间内的 元素
  
  6 :服务端:键值命令
  keys *  keys s*//模糊匹配keys
  exists set1  //
  del set1
  expire  //设置现有的键 的过期时间, 过期后 则被自动删除
  select  //选择数据库, redis-cli默认进去数据库0 , select 0 。 redis数据库有 0 - 15
  move  将当前数据库中的key 移动到其他数据库中  move key1 2 //将当前数据库键key1 移动到数据库2中
  persist  取消设置的过期时间
  randomkey  随机返回当前数据库中key
  rename
  type  返回键 的数据类型
  echo  直接在命令框 输出
  dbsize  返回当前数据库  键    个数
  info  返回redis服务器   相关信息
  config get * //返回配置信息
  flushdb  //删除当前数据库  所有键
  flushall  //删除0-15数据库所有  键
  
  
  
  
  
  问题1:界面版
  php WEB版 在线管理 redis,动态监控数据,PHPRedisAdmin
  https://github.com/ErikDubbelboer/phpRedisAdmin 下载 .zip
  解压到根目录下
  出现HTTP 500错误,查看日志error.log
  [Wed Jul 03 10:20:28 2013] [error] [client XX.XXX.XX] PHP Warning: require_once(/var/www/phpRedisAdmin-master/predis/autoload.php): failed to open stream: No such file or directory in /var/www/phpRedisAdmin-master/includes/common.inc.php on line 35
  还需要下载predis到PHPRedisAdmin 根目录下。
  https://github.com/nrk/predis 下载.zip 解压
  直接访问管理redis数据。
  -----------
  直接下载总结好的,加压到网站根目录直接访问就可以使用。 下载地址

运维网声明 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-88910-1-1.html 上篇帖子: ruby连接redis 下篇帖子: Redis源代码分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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