2018.07.02 18:30

Redis常见的数据类型的正确设置和获取值


redis 获取正确类型的方法 


是类型不对


在redis-cli中输入:


TYPE key 看看返回的类型,不是所有的类型都可以用GET获得数据的,比如hash类型,


你可以试试:

HGETALL key

 
127.0.0.1:6379> type user1
hash

127.0.0.1:6379> HGETALL user1
1) "first_name"
2) "li"
3) "last_name"
4) "dong"
5) "email"
6) "44@qq.com"
7) "phone"
8) "13678237425"
127.0.0.1:6379> 

127.0.0.1:6379> type name
string
127.0.0.1:6379> get name
"1"


TYPE key


返回 key 所储存的值的类型。

none (key不存在)

string (字符串) get name

list (列表) lrange mylist 0 0

set (集合) SMEMBERS pat

zset (有序集) ZRANGE page_rank 0 0

hash (哈希表) HGETALL user1



# 字符串(String)


redis> SET weather "sunny"
OK

redis> TYPE weather
string

127.0.0.1:6379> set name 1
OK
127.0.0.1:6379> type name
string



# 集合(Set)

redis> SADD pat "dog"
(integer) 1

redis> TYPE pat
set


## 表list

127.0.0.1:6379> LPUSH mylist 'testlist'
(integer) 1
127.0.0.1:6379> type mylist
list
127.0.0.1:6379> SMEMBERS pat
1) "dog"


## 有序集(Sorted Set)

127.0.0.1:6379> ZADD page_rank 10 google.com
(integer) 1
127.0.0.1:6379> type page_rank
zset
127.0.0.1:6379> ZRANGE page_rank 0 0
1) "google.com"
127.0.0.1:6379>



## 哈希表(Hash)

127.0.0.1:6379> HMSET user3 first_name "doudou" last_name "nounou" email "user3@qq.com" phone "15528053697" 
OK
127.0.0.1:6379> type user3
hash
127.0.0.1:6379> hgetall user3
1) "first_name"
2) "doudou"
3) "last_name"
4) "nounou"
5) "email"
6) "user3@qq.com"
7) "phone"
8) "15528053697"
127.0.0.1:6379>



Redis报错:ERR Operation against a key holding the wrong kind of value 解决处理

问题解决:


先执行一条如下命令,usrInfo为其中的一个key值。


redis 127.0.0.1:6379>type usrInfo


此时会显示出该key存储在现在redis服务器中的类型,例如:


redis 127.0.0.1:6379>hash


则表示key为usrInfo的数据是以hash类型存储在redis服务器里的,此时操作这个数据就必须使用hset、hget等操作方法。


如果是zset如下:


redis 127.0.0.1:6379>zset


则表示数据类型为Sorted Sets的。此时就需要使用zadd、zrange等操作方法,否则就会报ERR Operation against a key holding the wrong kind of value这个错误!

1) "first_name"
2) "li"
3) "last_name"
4) "dong"
5) "email"
6) "44@qq.com"
7) "phone"
8) "13678237425"
HMSET user3 first_name "doudou" last_name "nounou" email "user3@qq.com" phone "15528053697" 

127.0.0.1:6379> HMSET user3 first_name "doudou" last_name "nounou" email "user3@qq.com" phone "15528053697" 
OK
127.0.0.1:6379> hgetall user3
1) "first_name"
2) "doudou"
3) "last_name"
4) "nounou"
5) "email"
6) "user3@qq.com"
7) "phone"
8) "15528053697"
127.0.0.1:6379>
在http://118.24.30.92:4444/user/search 输入 user3 可以访问到 (证明这个redis 保存成功 node中可以访问)


##

Warning 因为 Redis 高性能的特点,在很短时间内尝试猜测非常多个密码是有可能的,因此请确保使用的密码足够复杂和足够长,以免遭受密码猜测攻击。、

DIY表情

(添加http或https协议)

提交评论