Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。Redis hash 是一个键值(key=>value)对集合。Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。Redis的Set是string类型的无序集合。
Redis 字符串(String)
对redis
的操作可以用两种方式,第一种方式采用redis-cli
,第二种方式采用编程语言,比如Python
、PHP
和JAVA
等。
- 启动
redis
:
sudo service redis-server start
- 连接上redis-server:
redis-cli -h [ip] -p [端口]
- 添加:
set key value 如: set username xiaotuo
将字符串值value
关联到key
。如果key
已经持有其他值,set
命令就覆写旧值,无视其类型。并且默认的过期时间是永久,即永远不会过期。
- 删除:
del key 如: del username
- 设置过期时间:
expire key timeout(单位为秒)
也可以在设置值的时候,一同指定过期时间:
set key value EX timeout 或: setex key timeout value
- 查看过期时间:
ttl key 如: ttl username
- 查看当前
redis
中的所有key
:
keys *
Redis 列表(List)
- 在列表左边添加元素:
lpush key value
将值value
插入到列表key
的表头。如果key
不存在,一个空列表会被创建并执行lpush
操作。当key
存在但不是列表类型时,将返回一个错误。
- 在列表右边添加元素:
rpush key value
将值value
插入到列表key
的表尾。如果key
不存在,一个空列表会被创建并执行RPUSH
操作。当key
存在但不是列表类型时,返回一个错误。
- 查看列表中的元素:
lrange key start stop
返回列表key
中指定区间内的元素,区间以偏移量start
和stop
指定,如果要左边的第一个到最后的一个lrange key 0 -1
。
- 移除列表中的元素:
移除并返回列表key
的头元素:
lpop key
移除并返回列表的尾元素:
rpop key
移除并返回列表key
的中间元素:
lrem key count value
将删除key
这个列表中,count
个值为value的元素。
- 指定返回第几个元素:
lindex key index
将返回key
这个列表中,索引为index
的这个元素。
- 获取列表中的元素个数:
llen key 如: llen languages
- 删除指定的元素:
lrem key count value 如: lrem languages 0 php
根据参数 count
的值,移除列表中与参数 value
相等的元素。count
的值可以是以下几种:
- count > 0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。
- count < 0:从表尾开始向表头搜索,移除与 value相等的元素,数量为count的绝对值。
- count = 0:移除表中所有与value 相等的值。
Redis 集合(Set)
- 添加元素:
sadd set value1 value2.... 如: sadd team xiaotuo datuo
- 查看元素:
smembeers set 如: smembers team
- 移除元素:
srem set member... 如: srem team xiaotuo datuo
- 查看集合中的元素个数:
scard set 如: scard team1
- 获取多个集合的交集:
sinter set1 set2 如: sinter team1 team2
- 获取多个集合的并集:
sunion set1 set2 如: sunion team1 team2
- 获取多个集合的差集:
sdiff set1 set2 如: sdiff team1 team2
Redis 哈希(Hash)
- 添加一个新值:
hset key field value 如: hset website baidu baidu.com
将哈希表key
中的域field
的值设为value
。
如果key
不存在,一个新的哈希表被创建并进行 HSET
操作。如果域 field
已经存在于哈希表中,旧值将被覆盖。
- 添加多个新值:
hmset key field value 如: hmset website baidu baidu.com google google.com
- 获取哈希中的
field
对应的值:
hget key field 如: hget website baidu
- 获取哈希中的多个
field
对应的值:
hmget key field, field2, field3 ... 如: hmget website baidu google
- 删除field中的某个
field
:
hdel key field 如: hdel website baidu
- 获取某个哈希中所有的
field
和value
:
hgetall key 如: hgetall website
- 获取某个哈希中所有的
field
:
hkeys key 如: hkeys website
- 获取某个哈希中所有的值:
hvals key 如: hvals website
- 判断哈希中是否存在某个
field
:
hexists key field 如: hexists website baidu
- 获取哈希中总共的键值对:
hlen field 如: hlen website
原创文章,转载请注明出处:https://leezc.cn/article/redis-operation/