上一篇我们进行了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 //退出