Redis 数据类型之string/list/hash

Redis中的键

Redis是键值型数据库,Redis中的键只有一个类型,就是字符串。

Redis中的值

Redis值支持的类型有以下几种:

  • 字符串类型 string
  • 列表类型 list
  • 集合类型 set
  • 有序集合类型 sorted set
  • 哈希类型 hash
  • HyperLogLog类型
  • Geo类型

字符串类型string

1、字符串类型的存取操作,注意set执行成功会返回OK。

127.0.0.1:6379> set name "maoge"
OK
127.0.0.1:6379> get name
"maoge"

2、如果键不存在,则返回nil。

127.0.0.1:6379> get test
(nil)

3、使用strlen可以获取字符串长度,当键不存在时返回0。

127.0.0.1:6379> strlen name
(integer) 5
127.0.0.1:6379> strlen test
(integer) 0

4、如果键已存在,再次执行set,则覆盖键对应的值。

127.0.0.1:6379> set name "maoge"
OK
127.0.0.1:6379> set name "halo"
OK
127.0.0.1:6379> get name
"halo"

5、使用setnx,当键不存在时为其设值,此时返回1;当键已存在则不改变键对应的值,返回0。

127.0.0.1:6379> setnx country "china"
(integer) 1
127.0.0.1:6379> get country
"china"
127.0.0.1:6379> setnx country "usa"
(integer) 0
127.0.0.1:6379> get country
"china"

6、使用mset/mget可以进行批量操作,这样可以节省客户端和服务器之间的通信开销。

127.0.0.1:6379> mset age "12" sex "man"
OK
127.0.0.1:6379> mget age sex
1) "12"
2) "man"

列表类型list

常用操作如下:

  • lrange 显示指定索引范围的元素(从0开始算)
  • lpush 左侧插入元素,返回插入后列表长度
  • rpush 右侧插入元素,返回插入后列表长度
  • lpop 左侧弹出元素
  • rpop 右侧弹出元素

注意,向不存在的键插入元素,Redis会自动创建list;如果列表为空,Redis会自动回收该键。实例如下:

127.0.0.1:6379> lrange studetns 0 1
(empty list or set)
127.0.0.1:6379> lpush students "zhangsan"
(integer) 1
127.0.0.1:6379> rpush students "lisi"
(integer) 2
127.0.0.1:6379> lrange students 0 1
1) "zhangsan"
2) "lisi"
127.0.0.1:6379> lpop students
"zhangsan"
127.0.0.1:6379> rpop students
"lisi"
127.0.0.1:6379> lrange students 0 1
(empty list or set)

哈希类型hash

注意Redis数据集本身即是一个hash结构,类似于java中的map。

此处的哈希类型,指的是,Redis键对应的值的部分,依然是一个哈希类型。

1、hset设置单个哈希字段的值

127.0.0.1:6379> hset city beijing "001"
(integer) 1
127.0.0.1:6379> hset city shanghai "002"
(integer) 1

2、hget获取单个哈希字段对应的值

127.0.0.1:6379> hget city beijing
"001"

3、hexists测试哈希字段是否存在

127.0.0.1:6379> hexists city beijing
(integer) 1
127.0.0.1:6379> hexists city tianjin
(integer) 0

4、hgetall获取哈希所有字段值

127.0.0.1:6379> hgetall city
1) "beijing"
2) "001"
3) "shanghai"
4) "002"

5、删除哈希字段

127.0.0.1:6379> hdel city beijing
(integer) 1
127.0.0.1:6379> hget city beijing
(nil)

6、批量设置、获取哈希字段

127.0.0.1:6379> hmset city nanjing "003" shenzhen "004"
OK
127.0.0.1:6379> hmget city nanjing shenzhen
1) "003"
2) "004"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章