Skip to content

Redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI [C语言]编写、支持网络、可基于内存亦可持久化的日志型、Key-Value[数据库],并提供多种语言的API

redis-cli.exe

客户端

redis-server.exe

服务端

redis 的数据结构

redis 存储的是 key value 格式的数据,其中key 都是字符串

​ value 的数据结构:

​ 1.字符串 String

​ 2.哈希类型 hash map格式

​ 3.列表形式 lsit linkedlist格式

​ 4,集合类型 set

​ 5.有序集合 sortedset

字符串类型:String

1.存储:set key value
2.获取:get key
3.删除:del key

哈希类型 hash

1.存储:hset key field value
2.获取:
		获取指定field的值:hget key field
		获取所有field 的value值 :hgetall key 
3.删除:hdel key field

存储类似于于创建了一个map集合,key是map的名字,field和value是键和值

列表 lsit

可以添加一个元素到列表的左边或者右边

类似于队列,不过与队列不同的是,可以分别从2端添加进元素

1.添加:
	lpush key value :将元素加入列表的左边
	rpush key value :将元素加入列表的右边
2.获取
	lrange key start end :范围获取 [ , )
3.删除
	lpop key :删除列表最左边的元素,并将元素返回
	rpop key :删除列表最右边的元素,并将元素返回
lsit中删除指定元素

lrem key count value

count > 0:从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。。
count = 0 : 移除表中所有与 value 相等的值。


lindex key 索引
通过索引获取列表中的元素
 1 表示列表第一个元素
-1 表示列表的最后一个元素
如果指定索引值不在列表的区间范围内,返回 nil
获取列表长度
llen key

集合 set

不允许重复元素

1.存储: sadd key value
2.获取: smembers key 
		获取set 集合中所有的元素
3.删除:srem key value: 删除set集合中的某个元素

通用命令

key * :查看所有的key
type key :获取键对应的value的类型
del key  :删除指定的key value

持久化

redis 是一个内存数据库,但redis服务器重启后,内存中的数据,会丢失

我们可以

将redis 内存中的数据持久化保存到硬盘的文件中

RDB

默认的持久化方式,不需要配置,默认就是使用这种机制

​ 在一定的间隔时间中检测,key的变化情况,然后持久化的数据

编辑redis.windows.conf 配置文件

save 900 1
	#在900s内修改过至少1条key 则保存数据
save 300 10
	#在300s内修改过至少10条key 则保存数据
save 60 10000
	#在60s内修改过至少10000条key 则保存数据

配置完成后重新启动redis服务器,并指定配置文件名称

使用cmd 命令窗口指定配置文件

redis-server.exe redis.windows.conf

持久化保存的数据,会在redis目录下生成一个rdb的文件

AOF

日志记录的方式,可以记录每一条命令的操作,可以每一次命令后持久化数据

编辑redis.windows.conf文件

appendonly no
	no:代表关闭AOF,
	yes:开启AOF

# appendfsync always
	每次命令偶读持久化数据
appendfsync everysec
	每间隔1s持久化数据
# appendfsync no
	不进行持久化

配置完成后,重启redis服务器,

使用cmd启动

redis-server.exe redis.windows.conf

存储指定过期时间

jedis.setex("键的名称",时间/s,"值")

经过指定时间后过期