redis常规数据操作

介绍

redis是一个key-value存储系统,和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步

操作key

Redis是key-value的数据库,Redis的键用于管理Redis的键,基本语法是
COMMAND KEY_NAME
192.168.23.100:6379> set test zhaiky
OK
192.168.23.100:6379> get test
"zhaiky"
192.168.23.100:6379> del test
(integer) 1
192.168.23.100:6379> get test
(nil)
192.168.23.100:6379> 

Redis keys命令及描述
1)del key 该命令用于在key存在是删除 key
2)dump key 序列化给定key,并返回被序列化的值
3)exists key 检查给定key是否存在
4)expire key seconds 为给定key设置过期时间
5)expire key timestamp EXPIREAT的作用和EXPIRE类似,都用于为key设置过期时间。不同在于EXPIREAT命令接受的时间参数是UNIX时间戳(unix timestamp)
6)expire key milliseconds 设置key的过期时间亿以毫秒计。
7)expire key milliseconds-timestamp 设置key过期时间的时间戳(unix timestamp)以毫秒计
8)keys pattern 查找所有符合给定模式( pattern)的key,例如keys * 返回所有的key
9)move key db 将当前数据库的key移动到给定的数据库db当中
10)persist key 移除key的过期时间,key将持久保持
11)pttl key 以毫秒为单位返回key的剩余的过期时间
12)ttl key 以秒为单位,返回给定key的剩余生存时间(TTL, time to live)
13)randomkey 从当前数据库中随机返回一个key
14)rename key newkey 修改key的名称
15)renamenx key newkey 仅当 newkey 不存在时,将 key 改名为 newkey 
16)type key 返回key所储存的值的类型

Redis数据类型

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。
1)String(字符串)
String是Redis最基本的数据类型,一个key对应一个value
192.168.23.100:6379> set test zhaiky
OK
192.168.23.100:6379> get test
"zhaiky"
192.168.23.100:6379> 

2)Hash(哈希)
hash是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象
192.168.23.100:6379> hset hash1 name zhaiky
(integer) 1
192.168.23.100:6379> hset hash1 score 100
(integer) 1
192.168.23.100:6379> hget hash1 name
"zhaiky"
192.168.23.100:6379> hget hash1 score
"100"
192.168.23.100:6379>
hset&hget一次只能往哈希结构里面插入一个键值对,如果插入多个可以用hmset&hmget
192.168.23.100:6379> hmset hash2 name zhaiky sex nan
OK
192.168.23.100:6379> hgetall hash2
1) "name"
2) "zhaiky"
3) "sex"
4) "nan"
192.168.23.100:6379> hmget hash2 name sex
1) "zhaiky"
2) "nan"
192.168.23.100:6379>

3)LIST(列表)
192.168.23.100:6379> lpush list1 1
(integer) 1
192.168.23.100:6379> lpush list1 2
(integer) 2
192.168.23.100:6379> lpush list1 3
(integer) 3
192.168.23.100:6379> lrange list1 0 1
1) "3"
2) "2"
192.168.23.100:6379> lrange list1 0 10
1) "3"
2) "2"
3) "1"
192.168.23.100:6379>

4)Set(集合)
Redis的Set是string类型的无序集合,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)
192.168.23.100:6379> sadd set1 redis
(integer) 1
192.168.23.100:6379> sadd set1 redis
(integer) 0
192.168.23.100:6379> sadd set1 mysql
(integer) 1
192.168.23.100:6379> smembers set1
1) "mysql"
2) "redis"
192.168.23.100:6379> 
说明
set往集合中插入元素,smembers列举出集合中的元素
成功插入返回1;错误插入返回0,例子中mongodb第二次插入时,因已经存在,故插入失败。

5)zset(sorted sete:有序集合)
zset和set一样也是String类型的集合,且不允许元素重复,zset和set不同的地方在于zset关联一个double类型的分数,redis通过分数对集合中的元素排序,zset的元素是唯一的,但是分数是可以重复的
192.168.23.100:6379> zadd zset1 1 redis
(integer) 1
192.168.23.100:6379> zadd zset1 2 redis
(integer) 0
192.168.23.100:6379> zadd zset1 3 mysql
(integer) 1
192.168.23.100:6379> zadd zset1 2 oracle
(integer) 1
192.168.23.100:6379> zrangebyscore zset1 0 100
1) "oracle"
2) "redis"
3) "mysql"
192.168.23.100:6379>

数据备份与恢复

数据备份
192.168.23.100:6379> config get dir #备份目录
1) "dir"
2) "/data/redis/redis/bin"
192.168.23.100:6379> save  
OK
数据恢复
只需将备份文件dump.rdb拷贝到redis的安装目录即可

数据库操作

Redis中,一共有16个数据库,分别是0~15,一般情况下,进入数据库默认编号是0,如果我们要进入指定数据库,可以用select语句
192.168.23.100:6379> select 0
OK
192.168.23.100:6379> keys *
1) "test"
2) "hash2"
3) "hash1"
4) "zset1"
5) "test1"
6) "list1"
7) "set1"
8) "test2"
192.168.23.100:6379> select 1
OK
192.168.23.100:6379[1]> keys *
(empty list or set)
192.168.23.100:6379[1]> 
192.168.23.100:6379> dbsize #当前数据库中所有key的数目
(integer) 8
192.168.23.100:6379> flushdb #删除当前数据库中的所有key
OK
192.168.23.100:6379> flushall #清空所有数据库中的所有key
OK
192.168.23.100:6379> 
192.168.23.100:6379> info #查看性能数据

发布了60 篇原创文章 · 获赞 20 · 访问量 4579

猜你喜欢

转载自blog.csdn.net/zhaikaiyun/article/details/105006527