南京网站改版,wordpress好友添加,宿迁网站网站建设,做网站打电话话术安装包地址#xff1a;https://github.com/tporadowski/redis/releases 建议下载zip版本#xff0c;解压即可使用。解压后#xff0c;依次打开目录下的redis-server.exe和redis-cli.exe#xff0c;redis-cli.exe用于输入指令。
一、基本结构 如图#xff0c;redis对外有个…安装包地址https://github.com/tporadowski/redis/releases 建议下载zip版本解压即可使用。解压后依次打开目录下的redis-server.exe和redis-cli.exeredis-cli.exe用于输入指令。
一、基本结构 如图redis对外有个端口用户发出的指令都要通过这个端口。redis是在内存中操作的这是它比别的数据库快的主要原因之一内存中的结构分为核心组件和数据库核心组件负责解析指令存取数据和执行指令。Redis默认有16个数据库初始默认使用0号库编号是0…15。内存中的数据库最后存到磁盘中实现数据持久化。
二、redis的数据类型
Redis的五大数据类型是String(字符串)、Hash(哈希)、List(列表)、Set(集合)和zset(sorted set:有序集合) 1String字符串 最基本的类型一个键对应一个字符串值。 可以存储文本、数字、甚至二进制数据如图片。 常用操作 SET key value设置键的值。 GET key获取键的值。 INCR key对存储的数字自增。 2Hash哈希 键对应一个哈希表哈希表由字段和字段值组成类似GO中的map。 常用操作 HSET key field value设置哈希表的字段值。 HGET key field获取哈希表的字段值。 HGETALL key获取哈希表中所有字段和值。 3List列表 键对应一个列表列表可以从两端进行插入和删除操作。 常用操作 LPUSH key value从左侧插入一个值。 RPUSH key value从右侧插入一个值。 LPOP key从左侧移除并返回一个值。 4Set集合 键对应一个无序集合集合中的元素是唯一的不允许重复。 常用操作 SADD key member向集合添加一个元素。 SREM key member移除集合中的某个元素。 SMEMBERS key获取集合中所有元素。 5Sorted Set有序集合 与集合类似但每个元素都会关联一个分数根据分数排序。 常用操作 ZADD key score member向有序集合添加元素和对应的分数。 ZRANGE key start stop按照分数从低到高返回集合中的元素。 ZREM key member移除有序集合中的某个元素。
三、string中的CRUD
CRUD是数据库基本操作其含义如下 C - Create创建插入新记录或创建新数据。 例如在 MySQL 中INSERT INTO 是创建数据的常用 SQL 语句。 R - Read读取读取数据或查询数据。 例如SELECT 是读取数据的常用操作。 U - Update更新修改现有数据。 例如UPDATE 用于更新数据库中的记录。 D - Delete删除删除数据。 例如DELETE FROM 用于删除数据。 redis中的string的基本操作语法如下 1.添加key-val[set] 2.查看当前redis的所有key[keys *] 3.获取key[get key] 4.删除key[del key] 5.切换redis数据库[select index] 6.如何查看当前数据库的key-val数量[dbsize] 7.清空当前数据库的key-val和清空所有数据库的key-val[flushdb] [flushall] 注意redis中没有update指令但能通过set相同的key实现。 实例
127.0.0.1:6379 set key1 hello
OK
127.0.0.1:6379 get key1
hello
127.0.0.1:6379 select 1
OK
127.0.0.1:6379[1] get key1
(nil)
127.0.0.1:6379[1] select 0
OK
127.0.0.1:6379 dbsize
(integer) 1
127.0.0.1:6379 set key2 sgg
OK
127.0.0.1:6379 dbsize
(integer) 2
127.0.0.1:6379 set address
OK
127.0.0.1:6379 get address
\xb1\xb1\xbe\xa9
127.0.0.1:6379 set address beijing
OK
127.0.0.1:6379 get address
beijing
127.0.0.1:6379 del address
(integer) 1
127.0.0.1:6379 get address
(nil)其中set address 是设置了key的值为“北京”其在内存中的值为\xb1\xb1\xbe\xa9。其中integernum表示操作是否成功或查询的对象数量。
四、string中的setex,mset,mget
SETEX专门用于设置带有过期时间的键值对。它的全称是 “Set EXpire”表示在设置键的同时定义其生存时间TTL, Time to Live。当键的 TTL 到期后Redis 会自动删除这个键。语法为SETEX key seconds value实例如下
127.0.0.1:6379 setex msg01 10 hello,you
OK
127.0.0.1:6379 get msg01
hello,you
127.0.0.1:6379 get msg01
(nil)这里设置了10秒后删除键msg01只有在10秒内get才能获取其值。 mset同时设置多个键值对mget一次获取多个键的值示例如下
127.0.0.1:6379 mset worker01 tom worker02 scott
OK
127.0.0.1:6379 get worker02
scott
127.0.0.1:6379 mget worker01 worker02
1) tom
2) scott五、hash
hash是一个键值对集合相当于GO中的mapvar user1 map[string]string Redis hash是一个string类型的field和value的映射表hash特别适合用于存储对象。 举例存放一个User信息
user1 name 张三 age 30说明哈希表user1中存放了两对field-valuename 张三和age 30。 hset为哈希表中的字段设置值hget获取哈希表中特定字段的值hgetall获取哈希表中的所有字段和值,hlen获取哈希表的键值对个数hexists查看指定key是否在哈希表中。实例如下
127.0.0.1:6379 hset user1 name smith
(integer) 1
127.0.0.1:6379 hset user1 age 30
(integer) 1
127.0.0.1:6379 hset user1 job golang coder
(integer) 1
127.0.0.1:6379 hget user1 name
smith
127.0.0.1:6379 hget user1 age
30
127.0.0.1:6379 hget user1 job
golang coder
127.0.0.1:6379 hgetall user1
127.0.0.1:6379 hmset user2 name jerry age 110 job java coder
OK
127.0.0.1:6379 hmget user2 name age job
1) jerry
2) 110
3) java coder
127.0.0.1:6379 hlen user2
(integer) 3
127.0.0.1:6379 hexists user2 name
(integer) 1
127.0.0.1:6379 hexists user2 name2
(integer) 0
127.0.0.1:6379 hgetall user2
1) name
2) jerry
3) age
4) 110
5) job
6) java coder练习存放一个Student信息 stu1 name 张三 age 30 score 80 address 北京 请通过相关指令完成对Student的crud操作。 解析 Create
127.0.0.1:6379 hmset stu1 name zhangsan age 30 score 80 address beijing
OKRead
127.0.0.1:6379 hgetall stu1
1) name
2) zhangsan
3) age
4) 30
5) score
6) 80
7) address
8) beijingUpdate
127.0.0.1:6379 hset stu1 name lisi
(integer) 0
127.0.0.1:6379 hgetall stu1
1) name
2) lisi
3) age
4) 30
5) score
6) 80
7) address
8) beijingDelete
127.0.0.1:6379 hdel stu1 age
(integer) 1
127.0.0.1:6379 hgetall stu1
1) name
2) lisi
3) score
4) 80
5) address
6) beijing注意HSET 的返回值并不表示值是否更新而是表示字段是否是新插入的。如果字段是新插入的返回 (integer) 1。如果字段已经存在无论值是否改变返回 (integer) 0。