Redis
作者:互联网
Redis是一个高性能的key-value的缓存数据库,key是字符串类型。
Redis一般是做缓存仓库的,因为它里面有一个属性,时效性。
时效性,我去存一个值,给它设置一个时间,过了这个时间这个值就会自动销毁。
核心特点: 单线程Redis的服务器程序采用的是单进程模型来处理客户端的请求。对续写时间的响应是通过epoll函数的包装来做到的。
Redis是一个nosql数据库,没有行没有列
有行有列相当于mysql是一个关系型数据库。在某一个空间,有一个库,有几张表,在这个表里面有几行几列数据,你要去维护这些数据的关系。这些关系我们要去存储下来,哪一天你把这些关系干掉了,这个数据库就没有用了。维护这些关系的成本特别高。这就是sql。你最多的是去维护这些字段的关系,比如说,你这张表里面有几条数据,而不是去维护这张表里面有几个字段。
nosql: 你只要在CPU里面给一个内存空间,我只要去存值就行了。key-value
我存一个值,我就给一个key-value,你只要遵守我的规则就行了。
Redis的规则就是,key必须是String类型的,value有五种数据类型(String set list Hahs zset)。
1 String 类型
(1)简介
字符串(string) 是Redis的最基本的类型,可以存储String,Integer,Float型的数据,甚至是二进制数据,一个字符串最大的容量是521M.
(2)命令
set 如果键不存在就是添加
如果键存在就是修改
set这个命令一次只能添加一个key
(1)设置多个键值对
mset key1 value1 key2 value2
(2) 设置过期时间(如果不设置那它存在Redis里面的时间就是永久的)
setex key 过期时间(以秒为单位) value
(3)追加值
在原来vlaue的基础上追加值 appened key value
(4)get命令
(1)获取单个值
get key1
(2)获取多个值
mget key1 key2
(5)del 命令
(1)删除某个键
del key1
(2)删除多个键
del key1 key2
(6) keys 命令(查询所有的key)
keys *
(7)exists命令(判断键是否存在)
如果存在返回1,不存在返回0
exists key
(8) tyep 命令(查看键对应的值的类型)
type key
(9)expire命令(设置键过期时间)
expire key seconds
(10) TTL命令(查看键的有效时间)
TTL key以秒为单位,返回给定key的剩余生存时间
返回值
当key不存在时,返回-2
当key存在但没有设置剩余生存时间时,返回-1
否则,以秒为单位,返回key的剩余生存时间。
2 List类型
简介: 列表中的值(value)类型为字符串
(1)字符串List,底层实现上不是数组,而是链表,也就是说在头部和尾部插入一个新元素。
其时间复杂度是常数级别的,其弊端是:元素定位比数组慢。
(2)添加
从左侧插入值:
lpush key value1 value2(它存放的顺序是 value2 value1)
从右侧插入值
rpush key value1 value2 (存放的位置是 value1 value2)
(3)获取
返回列表里指定范围内的值
(1)索引从左侧开始,第一个值的索引为0
(2)索引可以是负数,表示从尾部开始计数,如-1 表示最后一个值
(3) start,stop 为要获取值的索引
语法: lrange key start stop
例如: 获取列表里所有的值
lrange key 0 -1
从第三个元素开始获取到最后的值
lrange key 2 -1
(4)修改
设置指定索引位置的值,
(1)索引从左侧开始,第一个值的索引为0
(2)索引可以是负数,表示从尾部开始,-1代表最后一个值
语法: lset key index value
lset name 1 aa
(5)删除
删除指定值
(1)将列表中前count出现的值移除
count>0;从头部往尾删除
count<0;从尾往头删除
count=0;删除所有的值
语法: lrem key count value
实战: 从键列表左侧开始删除2个 2
lrem born 2 2
(3)set 类型
简介:字符串set,无序不可重复,是通过HashTable实现的
(1)添加元素,sadd key value || sadd key value1 value2
(2)获取集合中所有的元素
smembers key
(3)判断元素是否在集合中
simember key v1
(4) 删除元素
srem key value
(5) 获取集合中元素个数
scard key
(6)弹出元素
spop key(查看这个元素的个数)
(7) 移除元素
smove myset v1 v2
4 Hash哈希类型
简介:按哈希方式来存放字符串 key value(key value) 它的值是key value类型
(1)设置值 hset key_name id v1
(2)同时设置多个值
hmset key key v1
(3)获取改key下所有的值
hgetall key
(4) 获取单个key的值
hget key key
(5)同时获取多个值
hmget key key key key
(6) 删除某个项 hdel key key
5 zset类型(有序集合)
简介: 字符串Set,有序且不可重复,根据Score来排序
(1)添加元素
Zadd myzset 10 v1
(2)获取索引区间内的元素
zrange myzset 0 -1
(3) 获取分数区间内的元素
zrangebyscore myzset 0 20 (获取大于0 小于20之间的值)
zrangebyscore myzset 0 (20 (代表大于等于0 小于20)
zrangebyscore myzset (20 +inf (代表大于20,带分数)
(4) 删除元素
zrem myzset v1 v2
(5) 获取集合中元素个数
zcard myzset
标签:myzset,元素,Redis,value,获取,key 来源: https://www.cnblogs.com/zhanzhangDejavaRoad/p/16157989.html