5d6d网 发表于 2016-12-19 10:43:50

redis渐入佳境(02) String与hash类型

  上一篇我们进行了redis的简单的介绍,并进行了安装、启动、停止、登录 等操作。下面我们进一步学习redis
  支持的数据类型中的string和hash。
  string就不多解释了,存储在redis中的键值对。
  下面直接上代码:

$ 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]
查看完整版本: redis渐入佳境(02) String与hash类型