正在为你努力加载中........

点滴记录 分享
11
2015-12
首页 >> redis >> redis数据类型 String hash介绍

redis数据类型 String hash介绍

redis的数据类型:
string
hash (适合存储对象,将一个对象存储到hash中会占用较少的内存)
list 
set
zset 有序集合

1:string , 1个key对应一个value值 , 可以包含任何类型的数据 (比如序列化,json , 二进制数据等)
用set方法设置(这个是覆盖之前的值)
普通类型的设置方法
-----------------------------------
127.0.0.1:6379> set username wangjian
127.0.0.1:6379> get username 
"wangjian"
设置key的value值是json类型的
127.0.0.1:6379> set username '{age:100 , sex:1}'
OK
127.0.0.1:6379> get username
"{age:100 , sex:1}"
------------------------------------------------------------------
用setnx方法设置,如果key已经存在,那么返回0 ,nx的意思是 not exist的意思可以这样理解
127.0.0.1:6379> SETNX username speakphp
(integer) 0
此时已经设置失败了,因为上面已经设置了
127.0.0.1:6379> SETNX age 100
(integer) 1
127.0.0.1:6379> SETNX age 100
(integer) 0
127.0.0.1:6379> get age
"100"
-------------------------------------------------------------
用setex方法设置,设置key对应的值为string类型value,并指定此键值对应的有效期

127.0.0.1:6379> SETEX color 3 red
OK
127.0.0.1:6379> get color
(nil)
设置一个key为color 并且过期时间是3s
---------------------------------------------------------------
用mset一次设置多个key的值,如果成功那么返回ok,失败返回0
127.0.0.1:6379> MSET aa 11 bb 22
OK
127.0.0.1:6379> keys *
1) "aa"
2) "age"
3) "bb"
4) "redmoney"
5) "username"
---------------------------------------------------------------
用msetnx 一次设置多个key的值,成功返回ok 失败返回0 ,不会覆盖已经存在的key
127.0.0.1:6379> MSETNX aa 33 vv 11
(integer) 0
上面aa这个key已经存在了 所以返回 0
127.0.0.1:6379> MSETNX aaa 33 vv 11
(integer) 1
--------------------------------------------------------------
用mget获取多个key的值
127.0.0.1:6379> MGET username aa
1) "wangjian@speakphp.com"
2) "11"
返回结果是value值
----------------------------------------------------------------
用incr对key值进行递增操作
127.0.0.1:6379> INCR age 
(integer) 2
返回递增之后的结果
----------------------------------------------------------------
用incrby 此方法是递增指定的值 ,假设key不存在 那么会设置key,默认value是0
127.0.0.1:6379> INCRBY down_num 100
(integer) 100
127.0.0.1:6379> INCRBY down_num -10
(integer) 90
-----------------------------------------------------------------
用decr 对key值进行递减
127.0.0.1:6379> DECR down_num
(integer) 89
-----------------------------------------------------------------
用decrby对指定的key值进行递减某个数
127.0.0.1:6379> DECRBY down_num 10
(integer) 79
127.0.0.1:6379> DECRBY down_num -10
(integer) 89
127.0.0.1:6379> DECR dd 
(integer) -1
-----------------------------------------------------------------
用append 给指定的key字符串追加value,返回新的字符串的长度
127.0.0.1:6379> get username
"wangjian@speakphp.com"
127.0.0.1:6379> APPEND username 11
(integer) 23
127.0.0.1:6379> get username
"wangjian@speakphp.com11"
-----------------------------------------------------------------
strlen 获取指定key对应的value的长度
127.0.0.1:6379> STRLEN username
(integer) 23

2:hashes 类型 适合存储对象
hset 设置hash field 为指定的值,如果key不存在,那么尝试创建
127.0.0.1:6379> HSET user:001 username wangjian
127.0.0.1:6379> HGET user:001 username
"wangjian"
上面可以理解成 ,设置user表里面有一个编号是001 的用户
----------------------------------------------------------
hsetnx 设置hash field为指定的值,如果key不存在那么创建,如果存在那么失败
127.0.0.1:6379> HSET user:001 username wangjian
(integer) 0
----------------------------------------------------------------
hmset 同时设置hash的多个field
127.0.0.1:6379> HMSET user:002 username test001 passwd test001
OK
----------------------------------------------------------------
hmget 获取全部指定的hash field
127.0.0.1:6379> HMGET user:002 username passwd
1) "test001"
2) "test001"
--------------------------------------------------------------------
hincrby 给hash field 加上指定的值
127.0.0.1:6379> HMGET user:002 username passwd age
1) "test001"
2) "test001"
3) "100"
127.0.0.1:6379> HINCRBY user:002 age 1
(integer) 101
---------------------------------------------------------------------
hexists 测试指定的field是否存在
127.0.0.1:6379> HEXISTS user:001 age
(integer) 0
127.0.0.1:6379> HEXISTS user:002 age
(integer) 1
---------------------------------------------------------------------
hlen 返回指定hash 的field的数量
127.0.0.1:6379> HLEN user:001
(integer) 2
---------------------------------------------------------------------
hdel 删除指定hash的field
127.0.0.1:6379> HDEL user:001 ss
(integer) 0
127.0.0.1:6379> HDEL user:002 age
(integer) 1
---------------------------------------------------------------------
hkeys 返回hash所有的field
127.0.0.1:6379> HKEYS user:002
1) "username"
2) "passwd"
---------------------------------------------------------------------
hvals 返回hash的所有value
127.0.0.1:6379> HVALS user:002
1) "test001"
2) "test001"
---------------------------------------------------------------------
hgetall 获取某个hash全部field和value
127.0.0.1:6379> HGETALL user:002
1) "username"
2) "test001"
3) "passwd"
4) "test001"

作者:一根烟的寂寞 分类:redis
浏览:864 评论:0

发表评论: