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

上一篇我们进行了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 [email protected] 
OK 
redis 127.0.0.1:6379> setrange mail 6 bbbb//setrange会替换指定位置与目的串一样大的位置 
(integer) 21 
redis 127.0.0.1:6379> get mail 
"[email protected]" 
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 [email protected] 
(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) "[email protected]" 
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) "[email protected]" 
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) "[email protected]" 
5) "key1" 
6) "1" 
7) "key2" 
8) "2" 
9) "key3" 
10) "3" 
11) "age" 
12) "13" 
redis 127.0.0.1:6379> quit //退出

猜你喜欢

转载自xuelianbobo.iteye.com/blog/2087754