004 redis数据结构(一)-String和Hash

redis数据结构和内部编码:

127.0.0.1:10179> set test1 2
OK
127.0.0.1:10179> object encoding test1
"int"

127.0.0.1:10179> type test1
string
127.0.0.1:10179> 

object enconding 查看内部编码

type 查看外部数据结构

内部编码和外部数据结构这种设计,可以随意改进内部编码,不会影响外部结构。【类似于面向接口概念】

RedisObject实例讲解:

Redis数据类型-字符:

Redis一共分为五种基本数据类型:String、Hash、List、Set、Zset.

内部编码有三种,rawembstrint

String 是二进制的。可以存储序列化对象,图片,字符串,数值等

setget方法

设置值 set key value, 取值 get key

删除值 del key

setnxnot exists

name 如果不存在进行设置,存在就不需要进行设置了,返回0

setexexpired/psetex(毫秒单位)

set key 10 value 设置key有效期为10秒,10秒后返回nil

setrange

setrange key index value (index 表示从第几位开始替换)

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

127.0.0.1:10179> set str 1234567
OK
127.0.0.1:10179> get str
"1234567"
127.0.0.1:10179> type str
string
127.0.0.1:10179> object encoding str
"int"
127.0.0.1:10179> 

-------------------------------------------------------------------

127.0.0.1:10179> set str "hello cc"
OK
127.0.0.1:10179> get str
"hello cc"
127.0.0.1:10179> type str
string
127.0.0.1:10179> object encoding str
"embstr"
127.0.0.1:10179> 

---------------------------------------------------------------------

127.0.0.1:10179> set str "hello cc aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
OK
127.0.0.1:10179> get str
"hello cc aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
127.0.0.1:10179> type str
string
127.0.0.1:10179> object encoding str
"raw"
127.0.0.1:10179> 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

使用一次性设置多个和获取多个值的mset、mget方法:

mset key1 value1 key2 value2 key3 value3

mget key1 key2 key3

msetnx

一次性设置和取值的getset方法

set key value

getset key value1   设置新值返回原来的值

incr和decr方法:对某一个值进行递增和递减

incrby和decrby方法:对某个值进行指定长度的递增和递减

append [name]方法:字符串追加方法

strlen [name]方法:获取字符串的长度

Redis数据类型-HASH:

Hash类型是String类型的field和value的映射表,或者说一个String集合。它的特别适合存储对象,相比较而言,将一

个对象类型存储在Hash类型里要比存储在String类型里占用更少的内存空间,并方便存取整个对象。

形如:hset key field value(含义是 hset是hash集合, key是集合名字 field是字段名 value为其值)使用hget

 key field 获取内容,也可以存储多个值。

hmset可以进行批量存储多个键值对:hmset key field1 value1 field2 value2,也可使用hmget进行批量

获取多个键值对。

同样也有hsetnx,和setnx大同小异。

hincrby集合递增。

hexists 是否存在key 如果存在返回 不存在返回0

hlen 返回hash集合里的所有的键数值

hdel 删除指定hash的field

hkeys 返回hash里所有的字段

hvals 返回hash的所有value

hgetall 返回hash里所有的key和value

------------------------------------------------------------------------------------------------------------------------------------------------------------------

127.0.0.1:10179> hmset user:1 name cc age 18 sex 0
OK
127.0.0.1:10179> type user:1
hash
127.0.0.1:10179> object encoding user:1
"ziplist"
127.0.0.1:10179> hmset user:2 info "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
OK
127.0.0.1:10179> object encoding user:2
"hashtable"

 

127.0.0.1:10179> object encoding user:2
"hashtable"
127.0.0.1:10179> hget user:1 name
"cc"
127.0.0.1:10179> hget user:1 age
"18"
127.0.0.1:10179> hget user:1 sex
"0"


------------------------------------------------------------------------------------------------------------------------------------------------------------------


 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值