基础知识
单进程
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
本文介绍了Redis的基本特性,包括单进程模型、多数据库管理、数据类型及其操作,以及键的管理和生存时间设置等内容。

4万+

被折叠的 条评论
为什么被折叠?



