您的位置:首页 > 数据库 > Redis

redis基本数据类型-redis系列教程

2017-06-24 11:29 309 查看

基础知识

单进程

redis程序采用的是单进程模型来处理客户端的请求,对读写等事件的响应是通过对epoll函数的包装来实现。

redis的实际处理速度完全依靠主进程的执行效率,假如同时有多个客户端并发访问,则服务器处理能力在一定情况下将会下降。假如要提升服务器的并发能力,那可以采用在单台服务器上部署多个redis进程的方式。

多数据库

redis每个数据库是用从
0
开始递增的数字来命名的,初始化
16
个(可以在配置文件中修改)数据库,默认使用
0
号数据库,你也可以使用
select [数字]
来切换数据库。

dbsize
查看当前数据库KEY的数量

move key db
在多个数据库之间移动数据

flushdb
清除当前数据库的全部数据

redis不支持自定义数据库名字

redis不支持为每个数据库设置不同的访问密码(只能是统一的密码)

多个数据库之间并不完全的隔离,使用
flushall
可以清空全部的数据。

redis的数据库更像是一个命名空间

基本数据类型

KEY(键)

key是字符串类型,如果中间有空格或者转义字符要用引号引起来,当然不建议这么做,这在低版本上可能不被支持。

命名建议
对象类型:对象标识(ID):对象属性
,例如
user:u100001:age


多个单词之间用
.
分隔,例如
user:u100001:body.head


在可读的情况下key应该尽量有意义并且简短

VALUE(值)

String

可以存储String/Integer/Float类型的数据,甚至是二进制数据,一个字符串最大容量是512M

List

底层实现上不是数组而是链表,也就是说在头部和尾部插入一个新元素,其时间复杂度是常数级别。当然也有弊端,比如元素定位比数组慢。

Set

无序不可重复列表,是通过HashTable来实现。

Hash

按照K/V方式来存储字符串,类似于java中的Map

ZSet

有序且不可重复,根据Score来排序。使用散列表和跳跃表来实现,所以读取中间部分数据也很快。

Geo

地理空间坐标的存储,很方便的计算两点之间的直线距离。

基本操作

键操作

keys pattern
获得符合规则的键名列表,pattern支持glob风格通配符格式

?
匹配一个字符

*
匹配任意字符

[]
匹配中括号内的任一字符,可以用来表示一个范围

\x
匹配字符x,用于转义符号

127.0.0.1:6379[1]> keys *
127.0.0.1:6379[1]> keys t?[a-z]


exists key
判断指定键是否存在,如果存在返回1(非0即真)

scan cursor [MATCH pattern] [COUNT count]
基于游标的迭代器,可以用来遍历键(分页浏览键)。

127.0.0.1:6379[1]> scan 0 count 3
1) "5"
2) 1) "myhash"
2) "myzset"
3) "a"
127.0.0.1:6379[1]> scan 5 count 3
1) "7"
2) 1) "myset"
2) "key2"
3) "myset2"
4) "myset3"


删除

del key
删除指定键值

del命令虽不支持通配符,但可以结合linux管道和xargs命令来自定义删除。例如
redis-cli keys * | xargs redis-cli del
,如果键名称中有空格可能并不会被删除。

类型

type key
获得键值的数据类型

数据都是以string类型存储,在做计算时会自动进行类型转换。

重命名

rename key newkey
修改指定键名称

renamenx key newkey
如果新的键名不存在则改名,防止已存在键被覆盖。

生存&过期时间

expire key seconds
修改键的生存时间(单位秒)

pexpireat key milliseconds-timestamp
修改键的生存时间(单位毫秒)

expireat key timestamp
修改键的到期时间(时间戳),从1970年1月1日起的秒数

pexpireat key milliseconds-timestamp
修改键的到期时间(时间戳),从1970年1月1日起的毫秒数

ttl key
返回键剩余生存时间(单位秒)

pttl key
返回键剩余生存时间(单位毫秒)

randomkey
返回随机一个键

迁移

migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]
在两个redis实例之间迁移键

MIGRATE 192.168.1.34 6379 "" 0 5000 KEYS key1 key2 key3
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息