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

[经验分享] redis渐入佳境(02) String与hash类型

[复制链接]

尚未签到

发表于 2016-12-19 10:43:50 | 显示全部楼层 |阅读模式
  上一篇我们进行了redis的简单的介绍,并进行了安装、启动、停止、登录 等操作。下面我们进一步学习redis
  支持的数据类型中的string和hash。
  string就不多解释了,存储在redis中的键值对。
  下面直接上代码:

[redies@localhost redis-2.4]$ redis-cli //用自带的客户端工具连接redis数据库
redis 127.0.0.1:6379> set name xiaobaiyang //set方法设置数据 set 键 值
OK //返回OK
redis 127.0.0.1:6379> get name //get 获取值 get 键
"xiaobaiyang" //返回值
redis 127.0.0.1:6379> setnx name xiaobaiyang1 //setnx 表示键不存在时才设置
(integer) 0 //因为name存在所以失败即返回0
redis 127.0.0.1:6379> get name
"xiaobaiyang" //设置失败 所以name的值不变
redis 127.0.0.1:6379> setex age 10 red //setex 设置有效时间 10s OK
redis 127.0.0.1:6379> get age
"red"
redis 127.0.0.1:6379> get age //10s后age为空了
(nil)
redis 127.0.0.1:6379> setnx age 20 //可以再次设置,因为age已经自己消失了
(integer) 1
redis 127.0.0.1:6379> get age
"20"
redis 127.0.0.1:6379> set mail xuelianbochao@163.com
OK
redis 127.0.0.1:6379> setrange mail 6 bbbb//setrange会替换指定位置与目的串一样大的位置
(integer) 21
redis 127.0.0.1:6379> get mail
"xueliabbbbhao@163.com"
redis 127.0.0.1:6379> mset key1 1 key2 2 key3 3 //mset 多个键进行同时赋值
OK
redis 127.0.0.1:6379> get key1
"1"
redis 127.0.0.1:6379> get ke2
(nil)
redis 127.0.0.1:6379> get key2
"2"
redis 127.0.0.1:6379> get key3
"3"
redis 127.0.0.1:6379> msetnx key4 4 //多个赋值 与setnx类似
(integer) 1
redis 127.0.0.1:6379> msetnx key4 key5
(integer) 0
redis 127.0.0.1:6379> msetnx key5 5 ket 6
(integer) 1
redis 127.0.0.1:6379> get ket
"6"
redis 127.0.0.1:6379> getset key5
55 //获得旧值set新值 "5"
redis 127.0.0.1:6379> getrange key5
01 //截取部分字符串 (error) ERR wrong number of arguments for 'getrange' command
redis 127.0.0.1:6379> getrange name 0 6
"xiaobai"
redis 127.0.0.1:6379> mget key1 key2 key3 //批量获取键值
1) "1"
2) "2"
3) "3"
redis 127.0.0.1:6379> incr age //自增
(integer) 21
redis 127.0.0.1:6379> incrby age 10 //自增设置步长
(integer) 31
redis 127.0.0.1:6379> incrby age -10
(integer) 21
redis 127.0.0.1:6379> decr age 10
(error) ERR wrong number of arguments for 'decr' command
redis 127.0.0.1:6379> decr age //自减 (integer)
20
redis 127.0.0.1:6379> decrby age
(error) ERR wrong number of arguments for 'decrby' command
redis 127.0.0.1:6379> decrby age
1 //自减设置步长 (integer) 19
redis 127.0.0.1:6379> append name ... //追加 在name后面追加....
(integer) 14
redis 127.0.0.1:6379> get name
"xiaobaiyang..."
redis 127.0.0.1:6379> strlen name //获得字符串的长度
(integer) 14
redis 127.0.0.1:6379> del name //删除键值
(integer) 1
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> get name
(nil)
redis 127.0.0.1:6379> ============================下面是hash================= ##hash类型类似新建一个字符串表格,表格里面放着键不重复的数据,类似Map<map>
redis 127.0.0.1:6379> hset myhash1 name xiaobaiyang //hset 哈希名 键 值
(integer) 1 //返回结果
redis 127.0.0.1:6379> hset myhash1 mai xxxx@aa.com
(integer) 1
redis 127.0.0.1:6379> hget myhash1 name //获取值 hget 哈希名 键
"xiaobaiyang"
redis 127.0.0.1:6379> hmset myhash1 key1 1 key2 2 //一次设置多个值
OK
redis 127.0.0.1:6379> hmget myhash1 name mai key1 key2 //一次获得多个值
1) "xiaobaiyang"
2) "xxxx@aa.com"
3) "1"
4) "2"
redis 127.0.0.1:6379> hsetnx myhash1 name xxxx //类似setnx
(integer) 0
redis 127.0.0.1:6379> hget myhash1 name
"xiaobaiyang"
redis 127.0.0.1:6379> hsetnx myhash1 key3 3
(integer) 1
redis 127.0.0.1:6379> hget myhash1 key3
"3"
redis 127.0.0.1:6379> hset myhash1 age 11
(integer) 1
redis 127.0.0.1:6379> hincr myhash1 age //无该方法
(error) ERR unknown command 'hincr'
redis 127.0.0.1:6379> hincrby myhash1 age
(error) ERR wrong number of arguments for 'hincrby' command
redis 127.0.0.1:6379> hincrby myhash1 age 2 //有这个方法
(integer) 13
redis 127.0.0.1:6379> hexists myhash1 age //看看是否存在该属性
(integer) 1
redis 127.0.0.1:6379> hexists myhash1 age1
(integer) 0
redis 127.0.0.1:6379> hlen myhash1 //哈希里面键的数量
(integer) 6
redis 127.0.0.1:6379> hdel myhsh1 //无法直接删除整个表
(error) ERR wrong number of arguments for 'hdel' command
redis 127.0.0.1:6379> hdel myhash1 age1 //删除哈希里面的属性
(integer) 0
redis 127.0.0.1:6379> hexists myhash1 age
(integer) 1
redis 127.0.0.1:6379> hkeys myhash1//显示全部keys
1) "name"
2) "mai"
3) "key1"
4) "key2"
5) "key3"
6) "age"
redis 127.0.0.1:6379> hvals myhs //显示全部值
(empty list or set)
redis 127.0.0.1:6379> hvals myhash1
1) "xiaobaiyang"
2) "xxxx@aa.com"
3) "1"
4) "2"
5) "3"
6) "13"
redis 127.0.0.1:6379> hgetall myhash1 //显示key和values
1) "name"
2) "xiaobaiyang"
3) "mai"
4) "xxxx@aa.com"
5) "key1"
6) "1"
7) "key2"
8) "2"
9) "key3"
10) "3"
11) "age"
12) "13"
redis 127.0.0.1:6379> quit //退出

运维网声明 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-316341-1-1.html 上篇帖子: redis 3.0的集群部署 下篇帖子: redis基本命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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