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

[经验分享] Redis 对String数据类型的操作

[复制链接]

尚未签到

发表于 2015-7-23 09:40:12 | 显示全部楼层 |阅读模式
  Redis的 Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更高。还可以享受Redis的定时持久化,操作日志及 Replication等功能。除了提供与 Memcached 一样的get、set、incr、decr 等操作外,Redis还提供了下面一些操作:
  
       
  • 获取字符串长度   
  • 往字符串append内容   
  • 设置和获取字符串的某一段内容   
  • 设置及获取字符串的某一位(bit)   
  • 批量设置一系列字符串的内容
    Redis能存储二进制安全的字符串,最大长度为1GB
  127.0.0.1:6379> set name "郭红俊"   
OK     
127.0.0.1:6379> get name     
"\xe9\x83\xad\xe7\xba\xa2\xe4\xbf\x8a"     
127.0.0.1:6379> set name "ghj1976"     
OK     
127.0.0.1:6379> get name     
"ghj1976"
  
  String类型还支持批量的读写操作
  [iyunv@localhost src]# ./redis-cli   
127.0.0.1:6379> mset age 31 sex "male"     
OK     
127.0.0.1:6379> mget age     
1) "31"     
127.0.0.1:6379> mget age sex     
1) "31"     
2) "male"     
127.0.0.1:6379> get age     
"31"     
127.0.0.1:6379> del age     
(integer) 1     
127.0.0.1:6379> mget age sex     
1) (nil)     
2) "male"     
127.0.0.1:6379>
  String类型其实也可以用来存储数字,并支持对数字的加减操作。
  
  127.0.0.1:6379>   
127.0.0.1:6379> incr age     
(integer) 1     
127.0.0.1:6379>     
127.0.0.1:6379> get age     
"1"     
127.0.0.1:6379> incrby age  5     
(integer) 6     
127.0.0.1:6379> get age     
"6"     
127.0.0.1:6379> decr age     
(integer) 5     
127.0.0.1:6379> get age     
"5"     
127.0.0.1:6379> decrby age 3     
(integer) 2     
127.0.0.1:6379> get age     
"2"     
127.0.0.1:6379> del age     
(integer) 1     
127.0.0.1:6379> get age     
(nil)
  说明:
  incr 命令给某个变量加一,如果这个变量不存在,则首先建立,使用默认值0,然后加一后是1, 如上面代码。如果这个变量存在,则直接加一。
  127.0.0.1:6379> set aa 45   
OK     
127.0.0.1:6379> get aa     
"45"     
127.0.0.1:6379> incr aa     
(integer) 46     
127.0.0.1:6379> get aa     
"46"     
127.0.0.1:6379> set bb ghh     
OK     
127.0.0.1:6379> get  bb     
"ghh"     
127.0.0.1:6379> incr bb     
(error) ERR value is not an integer or out of range     
127.0.0.1:6379>
  
  String类型还支持对其部分的修改和获取操作
  
  
  127.0.0.1:6379> set name 郭红俊   
OK     
127.0.0.1:6379> get name     
"\xe9\x83\xad\xe7\xba\xa2\xe4\xbf\x8a"     
127.0.0.1:6379> append name "ddd."     
(integer) 13     
127.0.0.1:6379> get name     
"\xe9\x83\xad\xe7\xba\xa2\xe4\xbf\x8addd."     
127.0.0.1:6379> strlen name     
(integer) 13     
127.0.0.1:6379> substr name 0 3     
"\xe9\x83\xad\xe7"     
127.0.0.1:6379> substr name 0 2     
"\xe9\x83\xad"
  
  
  更多字符串使用命令参考:
  http://www.redisdoc.com/en/latest/string/index.html
  redis 全部命令请看:
  http://www.redisdoc.com/en/latest/index.html
  
  简单统计命令如下:
  127.0.0.1:6379> dbsize   
(integer) 2   
127.0.0.1:6379>   
127.0.0.1:6379> keys *   
1) "sex"   
2) "name"   
127.0.0.1:6379>
  
  dbsize 返回目前存储的数量。
  keys 返回满足查询表达式的所有key  keys * 是全部

运维网声明 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-89717-1-1.html 上篇帖子: [摘录]基于Nginx+Lua轻松开发并发过万的接口(Redis版) 下篇帖子: Linux下安装redis
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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