- 简介
redis数据库是一个基于内存存储的数据库,所以,redis 数据库的访问速度非常快,因此,redis数据库可以做缓存系统,但是,redis做缓存大材小用,主要是用于做分布式集群,可以提高网站的响应速度,redis数据库存储形式是以key-value形式进行存储。
- redis数据库的特点:
-
- redis数据库开源免费的。
- redis数据库支持多种数据结构。比如:字符串,列表,哈希表,集合(有序集合和无序集合)
- redis数据库支持原子操作,支持事务。
- redis数据库支持发布和订阅功能。
- redis数据库支持数据过期。
- redis数据库具有高可用性和可扩展性。
-
- redis数据库的安装和启动
-
- 安装:解压即可
- 启动数据库:
- 启动服务:redis-server redis.windows.conf
- 再启动数据库:redis-cli
-
REDIS数据库的端口号:6379
MySQL:3306
MongoDB:27017
HTTPS:443
HTTP:80
Django:8000
Flask:5000
Fiddler:8888
- redis数据库的操作(字符串、列表、无序集合)
redis数据库默认有16个数据库[0-15],默认进入的是0库
select 数据库名:切换数据库
keys * :查看当前数据库中所有的键
expire key 秒数:设置过期时间
persist key :移除过期时间
del key :指定键进行的删除。返回值代表删除的个数
flushdb:清空当前数据库
flushall:清空所有数据库
- 字符串操作:
- set key value:设置一个键值对,返回OK代表设置成功。如果对同一个key设置不同的值,相当于修改。
- get key:获取对应键的值。
- setnx key value :设置一个键值对。如果对同一个key设置不同的值,不修改。
- setex key 秒数 value:设置一个指定有效期的键值对。
- setrange key offset value:替换,从偏移量的位置开始替换,返回值是替换后的长度。
- mset key1 value1 key2 value2 ……:批量设置键值对,如果对同一个key设置不同的值,相当于修改。
- mget key1 key2 ……:批量获取值
- msetnx key1 value1 key2 value2 ……:批量设置键值对。如果对同一个key设置不同的值,不修改
- getset key value :获取key原值,设置新值,返回值是原值。
- getrange key start end:获取指定范围(索引范围:[start,end])的内容。
- incr key:给指定键的值+1
- incrby key value :给对应键的值加上指定的数。
- decr key:给指定键的值-1
- decrby key value:给对应键的值减去指定的数。
- append key value:给指定的键追加指定的值。 返回值是添加后的字符串的长度
- strlen key:查看字符串的长度
- redis数据库中列表指令
redis数据库的列表是一种双向链表结构,基于这种结构,redis数据库的列表可以实现队列和栈。
- lpush key value1 value2 ……:在列表头部插入元素,返回值代表添加后列表元素数量。
- lrange key start end:查看列表中的指定范围内的元素
- rpush key value1 value2 ……:在列表尾部插入元素。返回值代表添加后列表元素数量。
- lpop key :从头部弹出一个元素,返回值是弹出的元素
- rpop key:从尾部弹出一个元素,返回值是弹出的元素
- linsert key before|after 值 新值:在原有元素之前/之后插入元素,返回值插入后的列表元素数量。
- lset key index value:修改指定索引位置上的元素。
- lrem key count value:从key中删除指定count个value元素
count > 0:代表头部删除
count > 0 : 代表尾部删除
count = 0:代表全部删除
- ltrim key start end:保留[start,end]范围内的元素,删除[start,end]范围外的元素
- lindex key value :查看指定索引上的元素
- llen key :查看列表长度
- rpoplpush key1 key2 :从key1的尾部删除元素,将删除的元素头部插入到key2中。
- redis数据库的无序集合
无序集合无重复数据,没有顺序
- sadd key value1 value2……:向集合中添加多个元素,返回值是添加成功的元素数量。
- smembers key:查看集合中的元素
- srem key value1 value2……:指定成员删除,返回值是删除成功的元素数量。
- spop key 【count】 :从集合中随机弹出指定数量的元素,返回值是弹出的元素。
- srandmember key [count]:随机获取count个元素,返回值是获取到的元素。
- smove key1 key2 value:将key1中的value移动的key2中。
- scard key:查看集合的长度
- sdiff key1 key2 :查看两个集合的差集
- sinter key1 key2 :查看两个集合的交集
- sunion key1 kye2:查看两个集合的并集
- sismember key value :判断value是否存在于key集合中,返回值1代表存在,返回值0代表不存在。