NoSQL(Not Only SQL),意即"不仅仅是 SQL",是一项全新的数据库理念,泛指非关系型的数据库。
NoSQL 用于超大规模数据的存储。
Redis 是一款高性能的键值(Key-Value)存储的非关系型数据库。
进入网站
https://github.com/MSOpenTech/redis/releases下载文件
Redis-x64-xxx.zip直接解压到电脑就可以使用
目录结构
redis.windows.conf:配置文件redis-cli.exe:redis 的客户端redis-server.exe:redis 服务器端简单使用
打开 redis 服务器端,不要关闭
打开 redis 的客户端,输入
127.0.0.1:6379> set username zhangsan OK 127.0.0.1:6379> get username "zhangsan"redis 存储的是 key-value 格式的数据,其中 key 都是字符串类型,value 有 5 种不同的数据结构:
字符串类型 String哈希类型 Hash:key-value 的集合列表类型 List:支持重复元素集合类型 Set :不允许重复元素有序集合类型 SortedSet:不允许重复元素,且元素有顺序排序存储一个元素
语法:
set key value实例:
127.0.0.1:6379> set username zhangsan OK获取一个元素
语法:
get key实例:
127.0.0.1:6379> get username "zhangsan"删除一个元素
语法:
del key实例:
127.0.0.1:6379> del username (integer) 1存储一个元素
语法:
hset key field value实例:
127.0.0.1:6379> hset myhash username zhangsan (integer) 1获取一个元素
语法:
hget key field实例:
127.0.0.1:6379> hget myhash username "zhangsan"获取所有元素
语法:
hgetall key实例:
127.0.0.1:6379> hgetall myhash 1) "age" 2) "18"删除一个元素
语法:
hdel key field实例:
127.0.0.1:6379> hdel myhash username (integer) 1将元素添加列表左边
语法:
lpush key value实例:
127.0.0.1:6379> lpush mylist a (integer) 1 127.0.0.1:6379> lpush mylist b (integer) 2将元素添加列表右边
语法:
rpush key value实例:
127.0.0.1:6379> rpush mylist c (integer) 1获取指定区间元素
说明:
lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
语法:
lrange key start end实例:
127.0.0.1:6379> lrange mylist 0 -1 1) "b" 2) "a" 3) "c"删除列表最左边的元素,并将元素返回
语法:
lpop key实例:
127.0.0.1:6379> lpop mylist "b"删除列表最右边的元素,并将元素返回
语法:
rpop key实例:
127.0.0.1:6379> rpop mylist "c"存储一个元素
语法:
sadd key value实例:
127.0.0.1:6379> sadd myset a (integer) 1 127.0.0.1:6379> sadd myset a (integer) 0注意:Set 不能添加重复元素
获取全部元素
语法:
smembers key实例:
127.0.0.1:6379> smembers myset 1) "b" 2) "a"删除某个元素
语法:
srem key value实例:
127.0.0.1:6379> srem myset c (integer) 1存储一个元素
语法:
zadd key score value实例:
127.0.0.1:6379> zadd mysortedset 60 a (integer) 1 127.0.0.1:6379> zadd mysortedset 50 b (integer) 1 127.0.0.1:6379> zadd mysortedset 80 c (integer) 1获取指定区间元素
语法:
zrange key start end [withscores]实例:
127.0.0.1:6379> zrange mysortedset 0 -1 1) "b" 2) "a" 3) "c" 127.0.0.1:6379> zrange mysortedset 0 -1 withscores 1) "b" 2) "50" 3) "a" 4) "60" 5) "c" 6) "80"删除一个元素
语法:
zrem key value实例:
127.0.0.1:6379> zrem mysortedset a (integer) 1查询所有的键
keys *获取键对应的value的类型
type key删除指定的 key-value
del keyRedis 是一个内存数据库,当 Redis 服务器重启后,数据会丢失。如果需要这些数据,可以将 Redis 内存中的数据持久化保存到硬盘的文件中。
打开 redis.windwos.conf 文件,找到以下内容
save 900 1 save 300 10 save 60 10000将其修改为以下内容
save 900 1 save 300 10 # 如果 10 秒内至少有 5 个键被改变,就持久化 save 10 5打开命令提示符,启动 Redis 服务器,并指定配置文件名称
D:\Redis>redis-server.exe redis.windows.conf启动 Redis 客户端,十秒内改变五个键
127.0.0.1:6379> set name a OK 127.0.0.1:6379> set name b OK 127.0.0.1:6379> set name c OK 127.0.0.1:6379> set name d OK 127.0.0.1:6379> set name e OKredis 文件夹中多了一个 dump.rdb 文件
关闭 Redis 的客户端,服务端
重新开启 Redis 的客户端,服务端,获取数据成功
127.0.0.1:6379> get name "e"打开 redis.windwos.conf 文件,找到以下内容
appendonly no将其修改为以下内容(开启 AOF)
appendonly yesredis.windwos.conf 文件还有关于 AOF 持久化的方式的配置
# appendfsync always : 每一次操作都进行持久化 appendfsync everysec : 每隔一秒进行一次持久化 # appendfsync no : 不进行持久化打开命令提示符,启动 Redis 服务端,并指定配置文件名称
D:\Redis>redis-server.exe redis.windows.conf启动 Redis 客户端,存储一个数据
127.0.0.1:6379> set name a OKredis 文件夹中多了一 appendonly.aof 文件
关闭 Redis 的客户端,服务端
打开命令提示符,启动 Redis 服务端,并指定配置文件名称
D:\Redis>redis-server.exe redis.windows.conf启动 Redis 客户端,获取数据成功
127.0.0.1:6379> get name "a"